我一直在使用HTML5 <video>
元素,它在Chrome和Firefox中都有效,但由于某种原因,当我从本地文件加载时它无法正常工作在chrome中然而它将在Firefox中工作。
示例:http://codepen.io/asolar/pen/BoyPxZ
任何人都可以告诉我为什么这在 chrome 中不起作用,并且当它是一个文件时在 firefox 中有效吗?我可以在chrome中更改某种类型的安全设置吗?
<html>
<head>
</head>
<body>
<div>
<video id="camera" width="640" height="480" autoplay style="display: inline;"></video>
</div>
<script type="text/javascript">
window.addEventListener('load', function() {Video();}, false);
// Setup the Audio and Video
function Video() {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
window.URL = window.URL || window.webkitURL || window.msURL || window.mozURL;
var constraints = {video: true, audio: true};
navigator.getUserMedia(constraints, (function(stream)
{
PlayVideo(stream);
//PlayAudio(stream);
}),
(function(err) {
console.log("The following error occured: " + err.name);
}));
}
// play the <video>
function PlayVideo(stream) {
video = document.querySelector('video');
video.src = window.URL.createObjectURL(stream);
video.onloadedmetadata = function(e) {
video.play();
}
}
</script>
</body>
</html>
答案 0 :(得分:0)
你可以责怪Goolge: getUserMedia()将在Chrome 47及更高版本中使用http://抛出错误(由于Chrome中的弃用)。 https://code.google.com/p/chromium/issues/detail?id=520765