Почему Chrome не отображает подсказку с разрешением "Разрешить" или "Запретить" на микрофон и веб-камеру?
Я создал простой видеочат с SimpleWebRTC, и когда я запускаю WebRTC на Ubuntu, Chrome 34 показывает мне приглашение с разрешением Разрешить или Запретить на микрофон и веб-камеру. Я нажимаю кнопку "Разрешить" и могу начать разговор, даже если у меня нет веб-камеры.
Но когда я запускаю WebRTC в Windows 7, Chrome 33 не показывает никаких подсказок. Но я вижу значок перекрестной веб-камеры в адресной строке. И когда я пытаюсь разрешить Chrome использовать микрофон и веб-камеру, он перезагружается. Итак, что мне нужно сделать для показа подсказки, как в Linux?
Мой код:
webrtc = new SimpleWebRTC({
// the id/element dom element that will hold "our" video
localVideoEl: 'publishers',
// the id/element dom element that will hold remote videos
remoteVideosEl: 'subscribers',
// immediately ask for camera access
autoRequestMedia: true
});
webrtc.on('readyToCall', function () {
webrtc.joinRoom(sessionId);
});
Также я могу воспроизвести его с помощью demo. Я получил следующее сообщение об ошибке в этом демонстрационном приложении:
Не удалось получить доступ к локальным медиа. Имя ошибки PermissionDeniedError. Продолжение без отправки потока.
Ответы
Ответ 1
Похоже, вы заблокировали домен, когда-либо запрашивающий доступ к медиа. Вы можете удалить это исключение из настроек Chrome.
Откройте Chrome Настройки, а затем перейдите к:
Настройки >
Конфиденциальность (в расширенных настройках) >
Нажмите Настройки контента. >
Нажмите Управление исключения...
Убедитесь, что для вашего домена нет значения Блокировать для аудио/видео. Вы можете удалить запись для заблокированного домена, если она существует.
Ответ 2
В Chrome 59 появилась новая функция безопасности:
Временно прекратить запросы на разрешение после 3 увольнений безопасности
Временно прекратите запрашивать разрешение у источника после третьего отклонения запроса на разрешение. Остановка будет снята по прошествии некоторого времени (первоначально 1 неделя), после чего источник может запросить разрешение снова. При дальнейшем увольнении снова будет применена временная остановка.
Для веб-разработчиков, которые тестируют функции, блок также можно удалить, изменив настройку разрешений в диалоговом окне информации о значке замка или очистив данные о просмотре.
Источник: https://www.chromestatus.com/features/6443143280984064
Ответ 3
У меня была точно такая же настройка SimpleWebRTC, и она не работала как в Chrome, так и в Firefox, и у меня явно не было одобрений/увольнений, сделанных ранее (что может быть причиной, по которой браузеры не спрашивают), но я получал доступ к своей локальной среде разработчика без https и большинство современных браузеров блокируют передачу изображения и звука, записанных устройством, только по HTTP. Просто добавив "https", я добился цели.