为什么Javascript getUserMedia只适用于firefox?

为什么Javascript getUserMedia只适用于firefox?,javascript,Javascript,我很难让这段代码在Firefox以外的浏览器上运行。代码应该可以访问网络摄像头。我找不到问题。它不适用于chrome、internet explorer和Safari。它只适用于Firefox。有人知道为什么吗?如何更正此代码 代码如下: <html> <head> <script> function loading() { var video = document.querySelector('#forVid'); navigator.getUserMe

我很难让这段代码在Firefox以外的浏览器上运行。代码应该可以访问网络摄像头。我找不到问题。它不适用于chrome、internet explorer和Safari。它只适用于Firefox。有人知道为什么吗?如何更正此代码

代码如下:

<html>
<head>
<script>

function loading()
{
 var video = document.querySelector('#forVid');
navigator.getUserMedia = navigator.getUserMedia ||navigator.webkitGetUserMedia || navigator.mozGetUserMedia ||navigator.msGetUserMedia || navigator.oGetUserMedia;


   if (navigator.getUserMedia)
   {
     var thevid = {video: true, audio: false};
     navigator.getUserMedia(thevid, handleVideo, forError)
   }


function handleVideo(localmediastream)
   {
      video.src = window.URL.createObjectURL(localmediastream);
   }

function forError(e)
    {
        // nothing
    }

}

</script>
</head>
<body onload = "loading()">

<video id = "forVid" style="position:absolute; top:0; left:50;"autoplay="true" height="600" width="600">

</body>
</html>

函数加载()
{
var video=document.querySelector('#forVid');
navigator.getUserMedia=navigator.getUserMedia | | navigator.webkitGetUserMedia | | navigator.mozGetUserMedia | | navigator.msGetUserMedia | | navigator.oGetUserMedia;
if(navigator.getUserMedia)
{
var thevid={video:true,audio:false};
getUserMedia(thevid、handleVideo、forError)
}
函数handleVideo(localmediastream)
{
video.src=window.URL.createObjectURL(localmediastream);
}
错误函数(e)
{
//没什么
}
}

因为此API对浏览器的支持非常少。 下面的链接列出了此API支持和不支持的所有浏览器

顺便说一句

说:

注意:这是一个用于向后兼容的遗留API。有关现代应用程序,请参阅navigator.mediaDevices.getUserMedia


因此,您最好在代码中使用
navigator.mediaDevices.getUserMedia
(也可以使用)。

在FF 34.0和google chrome 41.0.2272.101中对我有效。这应该在chrome中有效。你如何测试你的代码?请注意,Chrome不允许从file://URL获取getUserMedia,而Firefox允许。使用localhost或任意数量的站点,如jsfiddle.net。你提到的其他浏览器还不支持getUserMedia。这就是它不工作的原因!!!!非常感谢。我已经看到这段代码在其他网站上成功实现。由于某些原因,我在这方面遇到了问题,而网站的发布者却没有。
navigator.mediaDevices.getUserMedia
是全新的,因此请查看该页面上的兼容性表。