В практике я вижу получение списка устройств после navigator.mediaDevices.getUserMedia()
Делается это чтобы прогрузился список с полученными разрешениями. Затем снова для получения потока с устройства вызывается getUserMedia(), но с ограничениями нужными.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
navigator.mediaDevices.getUserMedia()
Делается это чтобы прогрузился список с полученными разрешениями. Затем снова для получения потока с устройства вызывается getUserMedia(), но с ограничениями нужными.