MediaDeviceInfo: groupId-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die schreibgeschützte groupId
-Eigenschaft der MediaDeviceInfo
-Schnittstelle gibt einen String zurück, der eine Gruppenkennung ist.
Zwei Geräte haben dieselbe Gruppenkennung, wenn sie zu demselben physischen Gerät gehören; beispielsweise ein Monitor mit integrierter Kamera und Mikrofon.
Wert
Ein String, der die Gruppe verwandter Geräte, zu der dieses Gerät gehört, eindeutig identifiziert.
Spezifikationen
Specification |
---|
Media Capture and Streams # dom-mediadeviceinfo-groupid |
Beispiele
In diesem Beispiel erstellen wir eine Liste der Geräte, die Teil derselben Gruppe wie ein bestimmtes Gerät sind. Dies könnte verwendet werden, um eine Benutzeroberfläche zu erstellen, die verbundene Geräte zusammenführt, um sie darzustellen, oder um es dem Nutzer zu erleichtern, die integrierte Kamera und das Mikrofon auf demselben Display gleichzeitig auszuwählen.
const getDeviceGroup = (mainDevInfo) => {
let devList = [];
navigator.mediaDevices.enumerateDevices().then((devices) => {
devices.forEach((device) => {
if (device.groupId === mainDevInfo.groupId) {
devList.push(device);
}
});
});
return devList;
};
Die Funktion getDeviceGroup()
nimmt das MediaDeviceInfo
-Objekt als Eingabe, das das Gerät beschreibt, für das eine Gruppenliste erstellt werden soll. Die Funktion beginnt damit, das Ergebnisarray devList
als leeres Array zu initialisieren.
Dann wird navigator.mediaDevices.enumerateDevices()
aufgerufen, um die Liste aller Mediengeräte zu erhalten. Sobald das Versprechen erfüllt ist, durchlaufen wir die Liste mit forEach()
. Für jedes Gerät, dessen groupId
mit der groupId
des Hauptgeräts übereinstimmt, schieben wir das MediaDeviceInfo
-Objekt in die Liste.
Schließlich wird die Liste, die nun ein MediaDeviceInfo
-Objekt für jedes Gerät in derselben Gruppe enthält, an den Aufrufer zurückgegeben.
Diese Version könnte einfach geändert werden, um entweder das übergebene Gerät aus der zurückgegebenen Liste herauszulassen oder es an die Spitze der Liste zu setzen, indem die deviceId
-Werte der beiden Objekte verglichen werden und das Gerät nur dann auf die Ergebnisliste gesetzt wird, wenn es nicht übereinstimmt.
Diese Version des Beispiels setzt das übergebene Gerät an die Spitze der Ergebnisliste und fügt dann alle anderen gefundenen Mitglieder der Gruppe hinzu:
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;
};
Browser-Kompatibilität
BCD tables only load in the browser