То, что вы хотите, это явным образом не разрешено из-за проблем снятия отпечатков пальцев . Сведения о настройке пользователя позволяют веб-сайтам однозначно идентифицировать их в Интернете, что является проблемой конфиденциальности.
Когда пользователи доверяют вашему сайту камеру и микрофон, эта информация считается релевантной для обмена.
Рабочая группа определила, что это разумный компромисс по нескольким причинам:
- У большинства пользователей настольных компьютеров есть только одна камера или нет.
- У большинства пользователей телефонов есть два, но вы можете использовать ограничение FaceMode для выбора.
- Учитывая 1 и 2, предварительный выбор, возможно, является худшим для большинства пользователей.
Я бы рассмотрел вопрос об изменении вашего кода, чтобы запросить камеру по умолчанию в первый раз, и дать пользователям возможность изменить его по факту, если потребуется. Это то, что делают большинство сайтов WebRTC.
Обратите внимание, что это должно быть проблемой только при первом посещении пользователем вашего сайта. При условии, что они предоставили камеру или микрофон только один раз в прошлом, вы сможете увидеть ярлыки, по крайней мере, в Chrome.
В отличие от Chrome, Firefox не сохраняет разрешения неявным образом, поэтому вам потребуется немного больше работы, чтобы получить ярлыки при загрузке страницы при повторных посещениях:
enumerateDevices
возвращает deviceId
для каждого устройства, которое сохраняется для вашего сайта, если пользователь предоставил (или предоставит в течение этого сеанса) камеру или микрофон хотя бы один раз. Вы можете использовать куки или локальное хранилище, чтобы соотнести deviceId
s с метками устройства. Это также позволяет выживать людям, аннулирующим разрешение в Chrome.