Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查客户是否有摄像头的正确方法_Javascript_Camera_Client_Frontend - Fatal编程技术网

Javascript 检查客户是否有摄像头的正确方法

Javascript 检查客户是否有摄像头的正确方法,javascript,camera,client,frontend,Javascript,Camera,Client,Frontend,我正在构建一个web应用程序,我需要在用户单击按钮后检查客户端是否有摄像头 我目前正在使用这个脚本,但它似乎不适用于IE navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix navigator.webkitGetUserMedia || navigator.mozGetUserMedia ||

我正在构建一个web应用程序,我需要在用户单击按钮后检查客户端是否有摄像头

我目前正在使用这个脚本,但它似乎不适用于IE

navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
                       navigator.webkitGetUserMedia ||
                       navigator.mozGetUserMedia ||
                       navigator.msGetUserMedia);

    navigator.getMedia({video: true}, function() {
      //has camera
    }.bind(this), function() {
      //no camera
    }.bind(this));
那么最好的方法是什么呢?

可能有以下问题:

navigator.getUserMedia();
此功能已从Web标准中删除。虽然有些 浏览器可能仍然支持它,它正在被删除。 避免使用,并尽可能更新现有代码;见 本页底部的兼容性表用于指导您的决策。 请注意,此功能可能随时停止工作

通过以下途径获得:

尝试:
mediaDevices.getUserMedia()
作为单例

navigator.mediaDevices.getUserMedia(constraints)
.then(function(stream) {
  /* use the stream */
})
.catch(function(err) {
  /* handle the error */
});
即使它不是解决方案,您也将对代码进行未来验证

编辑:


T.J.Crowder指出,实际上,不推荐使用的
navigator.getUserMedia()
被列为不在IE中工作。

(FWIW,我不会在
navigator
上分配属性,但这不可能是上面的内容不在IE中工作的原因)。这可能是它失败的原因;他对奇怪的事情很敏感。当然,我们肯定知道OP是否会准确描述“不工作”在这里的含义。@Pointy:是的,我也在想这两件事…:-)它在IE中不起作用,因为IE不支持
getUserMedia
(鉴于该功能现在已被弃用,我怀疑Edge也不支持)。旁注:
navigator.msGetUserMedia
是无用的,因为没有这样的属性。IE只是不支持它更确切地说,在该页面的底部,它清楚地表明Internet Explorer不支持它(不支持或不支持)。谢谢你!我会尽快尝试并给你反馈我想指出我使用了这个解决方案。问题没有解决,但我可以在其他浏览器上使用cam,并在IE上处理错误。