【问题标题】:How detect video content in url?如何检测 url 中的视频内容?
【发布时间】:2013-02-25 06:43:00
【问题描述】:

我在我的 wp8 应用程序中使用 TweetSharp 流式传输推文。我想检测每条推文中的内容。使用照片很简单,使用TwitterStatus.Entities.Media 它是一组图像。视频更难,视频链接在TwitterStatus.Entities.Urls(如youtube.comyoutu.be等)中,并带有指向其他站点的简单链接。官方 android Twitter 应用程序检测内容类型并显示图标 forech 类型(链接、视频、照片)。我试图仅从 JSON 中获取此信息,但在 JSON 中,视频链接也在 urls 中,而不是在 media 中。但是android app知道如何检测内容,所以可以制作。

在完整的解决方案中,我只需要 MyTwitterMessage 中的 enum 字段 MyTwitterMessagePhotoVideoLinkNothing

【问题讨论】:

  • 为什么不直接检查 Url 是否包含任何已知的视频服务地址?
  • @MarcinJuraszek 你知道多少视频服务? 5? 10? 20?

标签: c# windows-phone-7 twitter tweetsharp


【解决方案1】:

我能想到的几种方法是

a) 只需使用已知的文件扩展名并检查扩展名是否属于哪种类型并返回(假设所有 URL 都将提供文件扩展名)。

b) 使用 URL 启动下载,但仅检索标头

 WebClient aClient = new WebClient();
 WebHeaderCollection collection = new WebHeaderCollection();
 collection[HttpRequestHeader.Range] = "bytes=0-0";
 aClient.Headers = collection; 
 aClient.DownloadStringAsync(new Uri("URI GOES HERE"));

然后在 DownloadStringCompleted 事件中解析 headers 并检索 content-type

 var aClient = (Webclient)sender;
 var responseHeaders = client.ResponseHeaders;
 var TypeOfContent = responseHeaders["Content-Type"];

然后您应该能够从那里确定内容,可以找到 MIME 类型 here

对于 b) 您可能还需要处理重定向,但这是另一个问题。

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 2021-02-09
    • 2021-01-15
    相关资源
    最近更新 更多