getuserMedia () - не работает на localhost, потому что это небезопасное происхождение? - PullRequest
1 голос
/ 18 июня 2020

Я явно нахожусь на localhost. Пробовал ставить unsafely-treat-insecure-origin-as-secure. Я также убедился, что ничего не заблокировано в настройках содержимого и сайта.

Похоже, что в Интернете больше нет информации.

enter image description here

1 Ответ

0 голосов
/ 26 июня 2020

Когда у меня проблема с доступом к камере в браузере на основе Chromium, я go на chrome://settings/content/camera и проверяю, заблокирован ли http://localhost:<port>.

Если вы обслуживаете локально, localhost должен работать . Однако у меня был инженер, случайно щелкнувший «запретить / заблокировать» во всплывающем окне разрешения getUserMedia. Вышеупомянутая проблема решила их проблему.

С точки зрения вашей проблемы предупреждение представляет собой всплывающее окно logi c, проверяющее https перед доступом к камере, а не ошибку с getUserMedia. Вам нужно будет проверить код и разрешить localhost. Следующий фрагмент разрешает localhost и проверяет наличие https, если он обслуживается.

Не все конфигурации сервера выполняют перенаправление с http на https, поэтому вам все равно следует защищать код внешнего интерфейса, чтобы он не сбоил в getUserMedia по ссылке http: // .

if (location.hostname === "localhost" || location.hostname === "127.0.0.1" || location.protocol === "https:"){
    alert("Run WebRTC code");
} else {
    alert("Redirect user from http to https");
} 
...