尝试在html5中访问网络摄像头:Firefox工作,Chrome和Opera don't

Trying to access webcam in html5: Firefox works, Chrome and Opera don't

本文关键字:Opera Chrome don 工作 Firefox html5 访问 摄像头 网络      更新时间:2023-09-26

我正试图通过javascript访问我的网络摄像头。当我使用下面的最小示例时,我希望至少看到一个弹出窗口,请求访问网络摄像头的权限。

这适用于Firefox,但不适用于Chrome或Opera(所有最新版本)。

显然,这里还没有显示实际的网络摄像头内容,我只是启动GetUserMedia(或其特定于浏览器的变体),但即使这样也不起作用。我没有得到"是"或"否"弹出窗口(在Firefox上除外)。

<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<script>
function OnSuccess(stream) { alert('yes') }
function OnError(error) { alert('nope') }
function OnLoad()
{
  navigator.anyGetUserMedia = navigator.getUserMedia 
   || navigator.webkitGetUserMedia 
   || navigator.mozGetUserMedia 
   || navigator.msGetUserMedia;
  navigator.anyGetUserMedia( {video:true, audio:false}, OnSuccess, OnError );
}
</script>
</head>
<body onload='OnLoad()'>
</body>
</html>

现在奇怪的是,当我在jsfiddle上使用完全相同的代码时,它确实有效
现场示例:http://jsfiddle.net/999anu81/(如果你有网络摄像头,这应该请求访问权限)

我做错了什么?

Chrome对何时允许getUserMedia有一些限制,以避免页面困扰用户,IIRC。将它附加到按钮上,而不是使用onload,它应该会更好地工作。