Spec-Zone.ru › Web APIs

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

См. также

  • API WebRTC
  • navigator.mediaDevices.enumerateDevices()
  • navigator.mediaDevices.getUserMedia()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API