Принудительно повторно вызывать getUserMedia при использовании HTTPS в Firefox - PullRequest
0 голосов
/ 05 июня 2018

Я делаю простое приложение с двумя веб-камерами, которое должно работать только на последней версии Firefox.Локально работает нормально:

  • пользователю предлагается доступ к камере
  • пользователь выбирает одну камеру
  • пользователю снова предлагается
  • пользователь выбирает вторую камеру
  • оба потока работают нормально

Однако, когда я загружаю его на сервер, который обслуживает страницу через HTTPS, доступ с первой камерывспомнил, и я просто получаю два одинаковых потока.

Есть ли способ принудительно повторить запрос на HTTPS, чтобы пользователь также мог выбрать другую камеру?

Это мойкод:

    function handleSuccess1(stream) {
      video1.srcObject = stream;

      navigator.mediaDevices.getUserMedia(constraints).
        then(handleSuccess2).catch(handleError);
    }

    function handleSuccess2(stream) {
      // this gets called automatically with the first stream
      // without re-prompting the user
      video2.srcObject = stream;
    }

    const constraints = {
      video: true
    };

    function handleError(error) {
      console.error(error);
    }

    navigator.mediaDevices.getUserMedia(constraints).
        then(handleSuccess1).catch(handleError);

1 Ответ

0 голосов
/ 05 июня 2018

Используйте navigator.mediaDevices.enumerateDevices() для просмотра списка доступных камер и / или микрофонов.

Подробнее об этом можно прочитать здесь: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices

...