Spec-Zone.ru › Web APIs

MediaDeviceInfo: свойство groupId

Базовая Широко доступная

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2017 года.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или всех поддерживающих браузерах.

Чтение только свойство groupId интерфейса MediaDeviceInfo возвращает строку, являющуюся идентификатором группы.

Два устройства имеют один и тот же идентификатор группы, если они принадлежат одному физическому устройству; например, монитору с встроенной камерой и микрофоном.

Значение

Строка, которая уникально идентифицирует группу связанных устройств, к которой принадлежит это устройство.

Спецификации

Спецификация
Захват медиа и потоки
# dom-mediadeviceinfo-groupid

Примеры

В этом примере мы собираем список устройств, которые являются частью той же группы, что и заданное устройство. Это может быть использовано для создания пользовательского интерфейса, который собирает связанные устройства вместе для отображения или для облегчения выбора пользователю использования встроенной камеры и микрофона на одном дисплее одновременно.

const getDeviceGroup = (mainDevInfo) => {
  let devList = [];

  navigator.mediaDevices.enumerateDevices().then((devices) => {
    devices.forEach((device) => {
      if (device.groupId === mainDevInfo.groupId) {
        devList.push(device);
      }
    });
  });

  return devList;
};

Функция getDeviceGroup() принимает в качестве входных данных объект MediaDeviceInfo, описывающий устройство, для которого должен быть построен список группы. Функция начинает с инициализации массива результатов, devList, пустым массивом.

Затем вызывается navigator.mediaDevices.enumerateDevices() для получения списка всех устройств медиа. После разрешения обещания мы обходим список, используя forEach(). Для каждого устройства, если его groupId совпадает с groupId основного устройства, мы добавляем объект MediaDeviceInfo в список.

Наконец, список, который теперь содержит объект MediaDeviceInfo для каждого устройства в той же группе, возвращается вызывающей стороне.

Это можно легко изменить, чтобы либо исключить переданное устройство из возвращаемого списка, либо поместить его в начало списка, сравнив значения deviceId двух объектов, добавляя устройство в список результатов только в том случае, если оно не совпадает.

Эта версия примера помещает переданное устройство в начало возвращаемого списка, а затем добавляет других членов группы, которые найдены:

const getDeviceGroup = (mainDevInfo) => {
  let devList = [mainDevInfo];

  navigator.mediaDevices.enumerateDevices().then((devices) => {
    devices.forEach((device) => {
      if (
        device.groupId === mainDevInfo.groupId &&
        device.deviceId !== mainDevInfo.deviceId
      ) {
        devList.push(device);
      }
    });
  });

  return devList;
};

Совместимость браузеров

Десктоп Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
groupId 47 12
39До Firefox 67, связанные устройства фактически не группируются по groupId.
34 11 47
39До Firefox для Android 67, связанные устройства фактически не группируются по groupId.
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/groupId

Spec-Zone.ru

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