我正在使用navigator.getUserMedia捕获html5中的网络摄像头图像。直到上周工作正常。现在获取像getUserMedia()这样的消息不再适用于不安全的起源并从网络摄像头中捕获图像。我在web上搜索了getUserMedia,发现它已被弃用,浏览器将来不支持它。是否有适用于所有浏览器的getUserMedia的替代功能。
我的HTML代码是
<video id="video" width="640" height="480" autoplay></video>
<button id="snap" class="sexyButton">Snap</button>
<canvas id="canvas" width="640" height="480"></canvas>
和脚本功能是
<script>
window.addEventListener("DOMContentLoaded", function() {
// Grab elements, create settings, etc.
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function(error) {
console.log("Video capture error: ", error.code);
};
if(navigator.getUserMedia) { // Standard
navigator.getUserMedia(videoObj, function(stream) {
video.src = stream;
video.play();
}, errBack);
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
navigator.webkitGetUserMedia(videoObj, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
} else if(navigator.mozGetUserMedia) { // WebKit-prefixed
navigator.mozGetUserMedia(videoObj, function(stream){
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);
}
// Trigger photo take
document.getElementById("snap").addEventListener("click", function() {
context.drawImage(video, 0, 0, 640, 480);
});
}, false);
</script>
答案 0 :(得分:1)
Chrome现在(截至47岁以上)执行新的安全规则,必须通过HTTPS提供使用getUserMedia
的网页。这是为了降低恶意演员使用相机或麦克风设备监视用户的风险。它已经宣布超过4个月。
至于你的其他评论&#34; getUserMedia在网上发现它已被弃用,浏览器不支持它未来&#34; - 这完全是错误的。
答案 1 :(得分:0)
Chrome 47,getUserMedia()不再适用于不安全的来源 几天前,Chrome 47已经发布。
如果没有HTTPS,WebRTC将无法运行。 根据内部安全政策,自版本47以来,Chrome浏览器不支持针对不安全页面的getUserMedia()。因此,如果您的网页不是HTTPS,则无法使用麦克风。
http://flashphoner.com/getusermedia-no-longer-works-on-insecure-origins/