Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5网络摄像头流不知何故中断了_Javascript_Html_Streaming_Html5 Video_Webcam - Fatal编程技术网

Javascript HTML5网络摄像头流不知何故中断了

Javascript HTML5网络摄像头流不知何故中断了,javascript,html,streaming,html5-video,webcam,Javascript,Html,Streaming,Html5 Video,Webcam,我有一个非常简单的javascript,它将内容从用户的网络摄像头传输到HTML5视频元素在我今天开始之前,它工作得很好。我试图在同一页面中添加画布元素,并在这样做时为视频元素添加了宽度和高度规范,以便视频和画布的大小相同。不知怎的,这破坏了网络摄像头/视频,所以我恢复了更改。。。而且它还是坏的 到目前为止,我已经尝试清除所有浏览器数据(我正在使用Chrome),重新启动浏览器,重新启动计算机,然后重新上传文件,但都没有成功。我根本没有接触javascript,只是上面的html5,所以我怀疑这

我有一个非常简单的javascript,它将内容从用户的网络摄像头传输到HTML5视频元素在我今天开始之前,它工作得很好。我试图在同一页面中添加画布元素,并在这样做时为视频元素添加了宽度和高度规范,以便视频和画布的大小相同。不知怎的,这破坏了网络摄像头/视频,所以我恢复了更改。。。而且它还是坏的

到目前为止,我已经尝试清除所有浏览器数据(我正在使用Chrome),重新启动浏览器,重新启动计算机,然后重新上传文件,但都没有成功。我根本没有接触javascript,只是上面的html5,所以我怀疑这是html5的问题,但我是javascript的初学者,所以我知道什么?由于我缺乏经验,最初只是让它工作需要一段时间,现在我在这方面的发展更是倒退了。我做了什么,如何修复它

下面是代码(注意:使用Modernizer处理getUserMedia的跨平台内容):


网络摄像机测试

var video=document.querySelector(“#video_元素”);
if(modernizer.getusermedia){
var gUM=modernizer.prefixed('getUserMedia',navigator);
gUM({video:true},videoInit,videoError);
}
函数videoInit(流){
video.src=window.URL.createObjectURL(流);
}
功能视频错误(e){
警报('Error!getUserMedia不可用!',e);
};


问题实际上在于Modernizer脚本:显然,从现在到我第一次使用它的时候,Modernizer人员将代码的getusermedia部分设置为非核心,因此没有包含在他们的标准下载中


我不确定这是否是原始问题,或者我下载的最新版本的Modernizer是否在原始版本的基础上产生了另一个问题,但将Modernizer从等式中删除解决了问题。我现在有一个工作的网络摄像头流再次-虽然只有在铬。稍后我会担心跨平台的问题。

您是否收到任何错误消息?没有,没有。视频元素只是一个静态的灰色框。我还验证了它既不是浏览器也不是网络摄像头,因为其他将网络摄像头流到视频元素(即教程)的网页工作正常。
autoplay
属性是一个布尔属性。它要么不存在,要么
autoplay
/
autoplay=“autoplay”
。它是否需要您的许可才能使用相机?@IgorGilyazov:我已经尝试了三种方法,单独使用autoplay,指定了true,并在true周围加上引号。我见过这三种代码在其他人的代码中可以互换使用,而这三种代码在我的代码工作与否方面都无法发挥作用。我以前从未见过“autoplay=”autoplay“”,但只是为了好玩,我刚试过,而且也不起作用。
<div id="webapp_content">

    <h4>Webcam Test</h4>

    <p>
    <div id="video_container">
        <video id="video_element" autoplay="true"></video>
    </div>

    <script>
    var video = document.querySelector('#video_element');

    if (Modernizr.getusermedia) {
        var gUM = Modernizr.prefixed('getUserMedia', navigator);
        gUM({video: true}, videoInit, videoError);
    }

    function videoInit(stream) {
        video.src = window.URL.createObjectURL(stream);
    }

    function videoError(e) {
        alert('Error! getUserMedia not available!', e);
    };

    </script>

    <p> 
</div>