如何检测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
答案 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);
}