не удается обнаружить поддержку getUserMedia в браузере Android

У меня проблема при обнаружении поддержки getUserMedia. Я использую Android 4.2.2.

Проблема в том, что браузер Android действует так, как будто он поддерживает getUserMedia, но при его использовании я не получаю ни вызова функции успеха, ни функции отказа. Код ниже:

    function onCameraFail(e){
        alert("Failed getting media");
    }

    if (navigator.webkitGetUserMedia) {
            alert("getMedia supported");
            navigator.webkitGetUserMedia({video:true}, function (stream) {
                alert("Got media");
            }, onCameraFail);
            alert("after getMedia");
    }else{  
        //Old device, no support for providing a photo
        alert("No support for getUserMedia");           
    }

В браузере Android этот код показывает всплывающее окно «getUserMedia поддерживается», но я никогда не получаю всплывающее окно с надписью «Получил медиа» или «Не удалось получить медиа». При запуске того же кода в Chrome на Android пишет: «Нет поддержки для getUserMedia».

Почему такое поведение? Я думал, что это обычный способ проверки поддержки функций.


person Mikael Holmgren    schedule 21.08.2013    source источник


Ответы (2)


GetUseMedia не поддерживается в браузерах Android.

http://caniuse.com/stream

getUserMedia (ограничения, successCallBack, errorCallBack)

В errorCallBack проверьте ошибку, которую вы получаете. Вы должны каждый раз выяснять точную причину.

person jintoppy    schedule 13.03.2014

Возможность WebRTC доступна на Android. Это зависит от того, имеет ли приложение:

  1. Правильные разрешения пользователя
  2. Пользователь нажал «Да» на всплывающие окна с указанным разрешением.
  3. ChromeWebView был создан после вышеуказанного
  4. ChromeWebView onPermissionRequest был переопределен, чтобы разрешить доступ к камере.

Вы должны получить соответствующее сообщение об ошибке (при вызове getUserMedia) в JavaScript, чтобы узнать, где это не удается, например. NotReadableError выделяет разрешения/невозможность запуска видеоисточника. Всегда используйте адаптер для согласованных сообщений об ошибках: https://webrtc.github.io/adapter/adapter-latest.js

Для получения дополнительной информации см. следующее: NotReadableError: Не удалось запустить исходный код

person Marcus    schedule 15.09.2019