Использование getUserMedia , чтобы позволить пользователю выбрать микрофон. Далее я использую enumerateDevices для создания выбора с устройствами, чтобы пользователь мог сменить устройство с пользовательского интерфейса.
Я на Firefox и не проверял, как другие браузеры плата за проезд, но по крайней мере для FF я не нашел решения.
Если пользователь выбирает запретить доступ при запросе, он не получает запрос снова [1] , пока пользователь не снимет ограничение :
Вопрос в том, есть ли способ определить, когда пользователь снимает ограничение?
Сценарий, как правило:
- Пользователь загружает страницу и ему предлагается выбрать устройство ввода
Пользователь отклоняет
UI disables device selector + hide various stuff
Пользователь снимает ограничение (как показано на рисунке выше) )
UI enables device selector + unhide various stuff
Нет (очевидно) способа сброса блока со стороны клиента с помощью Java скрипта, но есть ли способ обнаружить, что пользователь отзывает блок? (Или есть? Похоже, что-то, что можно было бы использовать для продолжения цикла запроса на доступ.)
Можно сделать все oop, где каждый продолжает пытаться на протяжении жизни страницы, но хотел бы избежать который. Ищите событие для этого.
В связи с этим, ondevicechange , не вызывает событие при удалении блока - что логично, так как в доступном нет изменения устройства, в некотором смысле: P.
[1] То есть: можно спросить, но это приведет к:
MediaStreamError
сообщение: Запрос не разрешен агентом пользователя или платформой в текущем контексте.
name: NotAllowedError