4

我想讓Chrome的getUserMedia在我的本地主機上工作。Chrome getUserMedia視頻不能在本地主機上工作

我的index.php文件是:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script type="text/javascript" src="js/script.js"></script> 
     <title></title> 
    </head> 
    <body> 
<video id="MediaStreamVideo" autoplay=""></video>  
    </body> 
</html> 

我的script.js文件是:

var stream; 
var video = document.getElementById('MediaStreamVideo'); 
navigator.webkitGetUserMedia(
    {video: true, audio: true}, // Options 
    function(localMediaStream) { // Success 
     stream = localMediaStream; 
     video.src = window.webkitURL.createObjectURL(stream); 
    }, 
    function(err) { // Failure 
     alert('getUserMedia failed: Code ' + err.code); 
    } 
); 

鉻要求我允許使用攝像頭和麥克風(我接受),但隨後什麼都沒發生。

它的工作原理罰款jsfidde

任何想法?

+0

你正在運行什麼版本的chrome? –

回答

2

問題應該與腳本的執行順序有關。視頻元素'MediaStreamVideo'在腳本執行時不可用。

它總是一個很好的做法,最後加載腳本。另外,將代碼封裝在一個函數中並在onload中執行。

+0

將腳本包含在最後還是內聯是一種好的做法嗎?我一直在頭部完成它。 – taco

+0

推遲加載資源(腳本)直到加載初始頁面爲止是一種很好的做法。將所有腳本放在主體的末尾。 –

+0

感謝您的回覆。無論是在主體的末尾,還是使用[jQuery's .ready()](http://api.jquery.com/ready/)函數 - 這就足夠了,正確嗎?從我讀過的內容來看,它完成了同樣的事情。 – taco

0

如果您使用的是Chrome瀏覽器,並且使用的是file:///網址,則需要使用命令行參數--allow-file-access-from-files來致電Chrome。

您可能想查看this SO Q&A

相關問題