如何在Safari和IE中访问网络摄像头? getUserMedia是否有其他API?

问题描述 投票:0回答:1

我当前正在使用javascript访问网络摄像头,然后使用getUserMedia流到浏览器,caniuse.com显示Safari和Internet Explorer 11及更高版本无法访问getUserMedia。

我用它来检查是否有网络摄像头,

navigator.getUserMedia  =   navigator.getUserMedia ||
                        navigator.webkitGetUserMedia ||
                        navigator.mozGetUserMedia ||
                        navigator.msGetUserMedia;

然后我使用此显示:

if (navigator.getUserMedia){
//document.getElementById("webcam").style.display = "block";

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);
        };

    // Put video listeners into place
    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) { // Firefox-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);
        canvasToDataURLString = canvas.toDataURL();
        var blob = dataURItoBlob(canvasToDataURLString);
        base64result = canvasToDataURLString.split(',')[1];
        //console.debug(base64result);
        document.getElementById("base64result").innerHTML = base64result;

    });
}, false);

}

或者只是根本无法使用IE和野生动物园访问网络摄像头?我了解Chrome的局限性,因为必须从安全来源访问该网页。

我想知道我做错了...我想知道getUserMedia是否还有其他替代方法!谢谢,请保持亲切,我已经尝试过谷歌搜索,但结果不多,我只是在寻找替代方法,如果确实不可能,那么可以。谢谢!

javascript html safari getusermedia
1个回答
0
投票

IE:不。 fuggedaboudit。 (好消息是,即使Windows的较旧版本现在也可以使用新的Edge,而就gUM和MediaRecorder而言,它 Chromium。)

Safari,无论是移动版还是Mac版,是的。 gUM可用,但MediaRecorder不稳定。

这些示例使您可以测试各种浏览器的功能,并且可以将源用作项目指导。

https://webrtc.github.io/samples/

© www.soinside.com 2019 - 2024. All rights reserved.