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