【问题标题】:Detect browser support for HTML Media Capture检测浏览器对 HTML 媒体捕获的支持
【发布时间】:2013-06-08 20:43:58
【问题描述】:


如何检测浏览器对 HTML Media Capture* 的支持?


测试某个属性是否支持的传统方法似乎不适用于某些设备(在 iPad 和 Google Nexus 上测试):

  var elm = document.createElement(input);
  if (capture in elm) {
    return true;
  } 


Modernizr 有一个测试,但它似乎并不可靠(它使用相同的原理): https://github.com/Modernizr/Modernizr/pull/909

__

(*) 有关 HTML 媒体捕获的更多信息:

http://www.w3.org/TR/html-media-capture/
http://www.html5rocks.com/en/tutorials/getusermedia/intro/#toc-round1

【问题讨论】:

  • 由于上面的测试不起作用,首先我会在正文中附加元素,并设置一个接受媒体的类型(即属性type="file"accept="image/*"、@987654328 @等),如果失败,那么我可能会通过用户代理字符串并测试浏览器是否是支持的版本。此外,您的 inputcapture 周围没有引号,因此会出错,因为它们将是未定义的变量。
  • 这里已经回答了这个问题:stackoverflow.com/questions/12199736/…

标签: html mobile-website modernizr browser-feature-detection


【解决方案1】:

我希望我错了,但似乎我们无法进行这种检测...

关于这个 HTML MEDIA Capture API (不同于 Streaming/GetUserMedia API)last paper,已于去年(2014 年)发布,并且从未退出草稿。 .

2012 年的 comment 请求在 Firefox 中实现此功能明确指出:

[T]这里没有真正需要实现它。它应该随 Android Intent 系统免费提供。我们应该只调用 ACTION_IMAGE_CAPTURE/ACTION_VIDEO_CAPTURE 的意图。

这意味着此功能直接来自操作系统,而我们作为开发人员将无法知道它是否可用......

因此,检测此功能的唯一方法似乎是 UserAgent 与已知支持设备的匹配...

【讨论】:

    【解决方案2】:

    浏览器中的这种媒体捕获形式已过时、不推荐使用和过时。可以像这样检测新标准 getUserMedia

    function hasGetUserMedia() {
       return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
            navigator.mozGetUserMedia || navigator.msGetUserMedia);
    }
    

    【讨论】:

    • 你能分享一下它说 HTML Media Capture 已被弃用和过时的地方吗?
    • 我要补充一点,它不太可能已经过时,也不会被弃用或过时,因为它从未退出过草案。流API和HTML MEDIA Capture不同,前者提供流,后者提供File。
    猜你喜欢
    • 2012-08-25
    • 1970-01-01
    • 2010-10-10
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    相关资源
    最近更新 更多