4

我正在尝试让 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);
    }
);

Chrome 要求我允许使用摄像头和麦克风(我接受),但没有任何反应。

它在jsfidde上运行良好

有任何想法吗?

4

3 回答 3

2

问题应该与脚本的执行顺序有关。执行脚本时,视频元素“MediaStreamVideo”将不可用。

最后加载脚本总是一个好习惯。此外,将代码包装在一个函数中并在加载时执行它。

于 2013-01-31T13:03:39.213 回答
0

如果您在 Chrome 中并使用file:///URL,那么您需要使用--allow-file-access-from-files.

您可能想查看此 SO Q&A

于 2014-08-22T23:23:52.440 回答
0

只需尝试:

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);
        video.srcObject = stream;
   },
   function(err) { // Failure
      alert('getUserMedia failed: Code ' + err.code);
   }
);
于 2019-03-14T21:39:42.513 回答