【问题标题】:How to know if a url is audio or video?如何知道网址是音频还是视频?
【发布时间】:2014-09-10 09:41:36
【问题描述】:

我从 xml rss 提要中获得了一些 url。 RSS 不区分音频或视频文件,它们都来自同一个标签。如何区分是音频还是视频的url来提供播放权限?

我将 url 存储在 var 中

var url = "http://www.someWeb/someFile.mp3";

我尝试使用 jQuery 进行搜索:

var search = url.search(/.mp3|.m4a/i);
if (search > -1){
    $('#check').text("it is audio");
}else {
    $('#check').text("it is video");
}

它适用于大多数情况,但它可能是更多类型的音频文件,总有一些类型的音频,没有扩展名......

有没有更好的方法来判断一个 url 是音频还是文件?

【问题讨论】:

  • 确定 URL 指向的数据类型的唯一方法是发出 HTTP 请求并查看 Content-Type 标头。这不是你可以用 Javascript 做的事情。
  • 查看这篇文章可能会有所帮助stackoverflow.com/questions/22574186/…

标签: php jquery audio video rss


【解决方案1】:

您也许可以使用 php 函数 get_headers()。您可以通过使用它来获取您的一个链接并执行 print_r() 以查看您在“Content-type”键下获得的内容来对此进行测试。

如果可行,请继续为您的所有文件类型创建一个开关盒,您应该一切顺利

http://php.net/manual/en/function.get-headers.php

【讨论】:

    【解决方案2】:

    这是在黑暗中拍摄,但如果您需要在加载之前知道内容类型,您可以尝试 HEAD 请求:

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4

    这只是在内容服务支持它的情况下。当然,如果您编写了服务,那么您可以自己实现它。只需发送标头,但省略实际内容。

    在接收端,响应标头应包含“Content-Type”。

    您可以从中提取所交付内容的类型。它通常看起来像这样:

    text/plain
    image/jpeg
    video/mp4
    audio/mp3
    

    从前缀确定通用媒体很简单。

    【讨论】:

      【解决方案3】:

      您必须获取 HTTP 标头字段(在这种情况下为 Content-Type)。看这里:http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

      【讨论】:

        【解决方案4】:

        这有点难。 我遇到了同样的问题,从 RSS 提要加载内容,可能包含视频或音频。

        没有实际请求就无法知道内容是什么,而且由于我正在使用来自外部网站的内容,我无法确定它们是否支持 HEAD 方法。

        我目前正在做的是假设 URL 以文件名结尾,采用扩展名并使用浏览器就绪版本的 https://github.com/broofa/node-mime 来获取相应的 MIME 类型。

        获得 MIME 类型后,我检查它是否以“视频”或“音频”开头。

        代码如下:

        function isVideoByURL(url) {
            var filename = url.split('/').pop().split('#')[0].split('?')[0];
        
            if(filename) {
                var ext = filename.split('.').pop();
                var mimeType = mime.getType(ext);
        
                return mimeType.startsWith('video');
            }
        
            return false;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-16
          • 1970-01-01
          • 1970-01-01
          • 2018-04-09
          • 2015-11-23
          • 1970-01-01
          相关资源
          最近更新 更多