检测HTML Media Capture的浏览器支持

时间:2013-06-12 16:23:38

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


如何检测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

2 个答案:

答案 0 :(得分:1)

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

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

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

  

[T]这里不需要实现它。它应该是免费的Android Intent系统。我们应该调用ACTION_IMAGE_CAPTURE / ACTION_VIDEO_CAPTURE。

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

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

答案 1 :(得分:-1)

浏览器中的这种媒体捕获形式已过时,已弃用且已过时。新标准 getUserMedia 可以这样检测:

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