MediaDeviceInfo
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2017 года.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Интерфейс MediaDeviceInfo API захвата медиа и потоков содержит информацию, описывающую одно устройство ввода или вывода медиа.
Список устройств, полученных при вызове navigator.mediaDevices.enumerateDevices(), представляет собой массив объектов MediaDeviceInfo, по одному на каждое устройство.
Свойства экземпляра
-
MediaDeviceInfo.deviceIdТолько для чтения -
Возвращает строку, являющуюся идентификатором представленного устройства, сохраняющимся между сессиями. Он не угадывается другими приложениями и уникален для источника вызывающего приложения. Он сбрасывается, когда пользователь очищает куки (для приватного просмотра используется другой идентификатор, который не сохраняется между сессиями).
-
MediaDeviceInfo.groupIdТолько для чтения -
Возвращает строку, являющуюся идентификатором группы. Два устройства имеют один и тот же идентификатор группы, если они принадлежат одному физическому устройству — например, монитору с встроенной камерой и микрофоном.
-
MediaDeviceInfo.kindТолько для чтения -
Возвращает перечисление, которое может быть
"videoinput","audioinput"или"audiooutput". -
MediaDeviceInfo.labelТолько для чтения -
Возвращает строку, описывающую это устройство (например, "Внешняя веб-камера USB").
Примечание: По соображениям безопасности поле label всегда пустое, если не существует активного потока медиа или пользователь предоставил постоянное разрешение на доступ к устройствам медиа. В противном случае набор меток устройств мог бы использоваться для механизма определения пользователя отпечатков пальцев.
Методы экземпляра
MediaDeviceInfo.toJSON()-
Возвращает JSON-представление объекта
MediaDeviceInfo.
Пример
Вот пример, который использует enumerateDevices() для получения списка устройств.
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
console.log("enumerateDevices() not supported.");
} else {
// List cameras and microphones.
navigator.mediaDevices
.enumerateDevices()
.then((devices) => {
devices.forEach((device) => {
console.log(`${device.kind}: ${device.label} id = ${device.deviceId}`);
});
})
.catch((err) => {
console.log(`${err.name}: ${err.message}`);
});
}
Это может дать:
videoinput: id = csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8= audioinput: id = RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM= audioinput: id = r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
или если один или несколько потоков медиа активны, или если постоянные разрешения были предоставлены:
videoinput: FaceTime HD Camera (Built-in) id=csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8= audioinput: default (Built-in Microphone) id=RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM= audioinput: Built-in Microphone id=r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
Спецификации
| Спецификация |
|---|
| Захват медиа и потоков # device-info |
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
MediaDeviceInfo |
47 | 12 | 39 | 34 | 11 | 47 | 39 | 34 | 11 | 5.0 | 47 |
deviceId |
47 | 12 | 39 | 34 | 11 | 47 | 39 | 34 | 11 | 5.0 | 47 |
groupId |
47 | 12 | 39До Firefox 67, связанные устройства фактически не сгруппированы поgroupId. |
34 | 11 | 47 | 39До Firefox для Android 67, связанные устройства фактически не сгруппированы поgroupId. |
34 | 11 | 5.0 | 47 |
kind |
47 | 12 | 39 | 34 | 11 | 47 | 39 | 34 | 11 | 5.0 | 47 |
label |
47 | 12 | 39 | 34 | 11 | 47 | 39 | 34 | 11 | 5.0 | 47 |
toJSON |
47 | 18 | 42 | 34 | 11 | 47 | 42 | 34 | 11 | 5.0 | 47 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo