我正在使用 html5/javascript getUserMedia api 编写一个 js 应用程序,如果可用,它将使用设备的相机。我正在使用 Modernizr 来检测(浏览器的)功能,如下所示:
if (Modernizr.getusermedia) {
在真正的块内:
navigator.getUserMedia(
{ // we would like to use video but not audio
// This object is browser API specific! - some implementations require boolean properties, others require strings!
video: true,
audio: false
},
function(videoStream) {
// 'success' callback - user has given permission to use the camera
// my code to use the camera here ...
},
function() {
// 'no permission' call back
console.log("user did not give access to the camera");
}
);
这工作正常。但我发现 Modernizer.getUserMedia 调用根据支持 api 的浏览器返回 true,而不是设备是否真的有摄像头。
IE。在我的带有 iSight 摄像头和当前版本 Chrome 的 MacBook 上,Modernizr.getUserMedia 返回 true,然后 navigator.getUserMedia(...) 提示允许使用摄像头。出色的
但是,在另一台没有摄像头但使用当前版本的 Chrome 的机器上,Modernizr.getUserMedia 返回 true,这意味着 navigator.getUserMedia(...) 提示允许使用设备没有的摄像头。没那么优秀!
有谁知道是否可以检测到相机的存在?理想情况下,如果他们没有相机,我不想提示用户访问相机的权限!
干杯
弥敦道