2015-04-03 72 views
2

我无法让此代码与Firefox以外的浏览器一起使用。该代码应该访问摄像头。我找不到问题。它不适用于Chrome浏览器,Internet Explorer,Safari。它只适用于Firefox。有没有人有任何答案,为什么?我怎样才能纠正这个代码?为什么Javascript getUserMedia仅适用于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> 
+0

适用于FF 34.0和谷歌浏览器41.0.2272.101 – 2015-04-03 07:50:10

+1

这应该适用于Chrome。你如何测试你的代码?请注意,Chrome浏览器不允许从URL:// URL访问getUserMedia。使用本地主机或任​​何数量的网站,如jsfiddle.net。您提到的其他浏览器不支持getUserMedia(还)。 – jib 2015-04-06 00:05:06

+0

这就是为什么它不工作!非常感谢。 – Tito 2015-04-14 03:56:05

回答

1

BTW

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

注:这是为了向下兼容旧版API。请参阅navigator.mediaDevices.getUserMedia以了解现代应用程序。

所以,你最好在代码中使用navigator.mediaDevices.getUserMedia(也)。

+0

我已经看到这个代码在其他网站上成功实施。出于某种原因,我遇到了问题,而且网站的发布者也没有。 – Tito 2015-04-03 15:36:01

+0

'navigator.mediaDevices.getUserMedia'是全新的,请参阅该页面上的兼容性表格。 – jib 2015-04-06 00:10:29

相关问题