10


如何检测浏览器对 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

4

2 回答 2

1

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

关于此 HTML MEDIA Capture API (不同于 Streaming/GetUserMedia API)最后一篇论文,于去年(2014 年)发布,从未退出草稿......

2012 年关于在 Firefox 中实现此功能的请求的评论明确指出:

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

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

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

于 2015-09-13T03:54:50.500 回答
-1

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

function hasGetUserMedia() {
   return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
于 2015-07-13T05:21:52.773 回答