为什么Javascript getUserMedia只适用于firefox?

时间:2015-04-03 07:41:08

标签: javascript

我无法将此代码用于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>

2 个答案:

答案 0 :(得分:1)

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

http://caniuse.com/#feat=stream

答案 1 :(得分:1)

顺便说一句

https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia说:

  

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

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