--- title: MediaDevices.enumerateDevices() slug: Web/API/MediaDevices/enumerateDevices translation_of: Web/API/MediaDevices/enumerateDevices ---
{{APIRef("WebRTC")}}{{SeeCompatTable}}
Метод MediaDevices.enumerateDevices()
собирает информацию о медиа-устройствах ввода и вывода, доступных в системе.
navigator.mediaDevices.enumerateDevices() .then(function(MediaDeviceInfo) { ... })
Возвращает {{ domxref("Promise") }} который, если выполнится успешно, вернёт массив экземпляров {{domxref("MediaDeviceInfo")}} , которые содержат информацию о доступных медиа-устройствах ввода и вывода.
Ниже, пример, использующий метод mediaDevices.enumerateDevices()
.
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) { console.log("enumerateDevices() не поддерживается."); return; } // Перечисление в цикле камер и микрофонов navigator.mediaDevices.enumerateDevices() .then(function(devices) { devices.forEach(function(device) { console.log(device.kind + ": " + device.label + " id = " + device.deviceId); }); }) .catch(function(err) { console.log(err.name + ": " + err.message); });
результат перечисления в цикле:
videoinput: id = csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8= audioinput: id = RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM= audioinput: id = r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
или, если один или более объектов {{domxref("MediaStream")}} активны, или получены постоянные разрешения:
videoinput: FaceTime HD Camera (Built-in) id=csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8= audioinput: default (Built-in Microphone) id=RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM= audioinput: Built-in Microphone id=r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
Что бы использовать метод enumerateDevices()
в устанавливаемом приложении (к примеру в Firefox OS приложение), необходимо указать оба поля внутри файла манифеста приложения:
"permissions": { "audio-capture": { "description": "Required to capture audio using getUserMedia()" }, "video-capture": { "description": "Required to capture video using getUserMedia()" } }
Смотри так же : разрешение: аудио захват and разрешение : видео захват в продолжение темы.
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('Media Capture', '#mediadevices', 'mediaDevices.enumerateDevices')}} | {{Spec2('Media Capture')}} | Initial definition. |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | {{CompatChrome(45.0)}} [1] | {{CompatVersionUnknown}} | 39 | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|---|
Basic support | {{CompatNo}} | {{CompatNo}} | {{CompatVersionUnknown}} | 39 | 39 | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
[1] Behind a flag.
getUserMedia() for taking photos rather than video.