Как получить доступ к веб-камере в Safari и IE? Есть ли альтернативный API для getUserMedia? - PullRequest
0 голосов
/ 03 марта 2020

В настоящее время я обращаюсь к веб-камере в javascript, затем потоковая передача в браузеры с использованием getUserMedia, caniuse.com показывает, что Safari и Inte rnet 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 ! Спасибо и, пожалуйста, будьте добры, я уже попробовал поискать в Google и многое другое, я просто ищу альтернативы, если это действительно невозможно, тогда хорошо. Спасибо!

1 Ответ

0 голосов
/ 05 марта 2020

IE: нет. fuggedaboudit. (Хорошая новость заключается в том, что даже более старые версии Windows теперь могут использовать новый Edge, а что касается gUM и MediaRecorder go, то означает Chromium.)

Safari, оба мобильный и ма c, да. gUM работает, но MediaRecorder работает ненадежно.

Эти примеры позволяют вам протестировать работу различных браузеров и использовать источник для руководства по вашему проекту.

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

...