2015-04-03 126 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

相關問題