MediaDeviceInfo
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 MediaDeviceInfo
Schnittstelle der Media Capture and Streams API enthält Informationen, die ein einzelnes Medien-Ein- oder Ausgabegerät beschreiben.
Die Liste der Geräte, die durch Aufruf von navigator.mediaDevices.enumerateDevices()
erhalten wird, ist ein Array von MediaDeviceInfo
Objekten, eines pro Mediengerät.
Instanz-Eigenschaften
MediaDeviceInfo.deviceId
Nur lesbar-
Gibt einen String zurück, der ein Bezeichner für das dargestellte Gerät ist, der über Sitzungen hinweg gespeichert wird. Er ist von anderen Anwendungen nicht erratbar und eindeutig für den Ursprung der aufrufenden Anwendung. Er wird zurückgesetzt, wenn der Benutzer Cookies löscht (für das private Surfen wird ein anderer Bezeichner verwendet, der nicht über Sitzungen hinweg gespeichert wird).
MediaDeviceInfo.groupId
Nur lesbar-
Gibt einen String zurück, der ein Gruppen-Bezeichner ist. Zwei Geräte haben den gleichen Gruppen-Bezeichner, wenn sie zu demselben physischen Gerät gehören — zum Beispiel ein Monitor mit integrierter Kamera und Mikrofon.
MediaDeviceInfo.kind
Nur lesbar-
Gibt einen aufgezählten Wert zurück, der entweder
"videoinput"
,"audioinput"
oder"audiooutput"
ist. MediaDeviceInfo.label
Nur lesbar-
Gibt einen String zurück, der dieses Gerät beschreibt (zum Beispiel "Externe USB-Webcam").
Hinweis: Aus Sicherheitsgründen ist das label
-Feld immer leer, es sei denn, ein aktiver Medienstream existiert oder der Benutzer hat dauerhafte Berechtigungen für den Zugriff auf Mediengeräte erteilt. Die Menge der Gerätebezeichnungen könnte andernfalls als Teil eines Fingerprinting Mechanismus verwendet werden, um einen Benutzer zu identifizieren.
Instanz-Methoden
MediaDeviceInfo.toJSON()
-
Gibt eine JSON-Repräsentation des
MediaDeviceInfo
Objekts zurück.
Beispiel
Hier ist ein Beispiel, das enumerateDevices()
verwendet, um eine Liste von Geräten zu erhalten.
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}`);
});
}
Dies könnte folgendes erzeugen:
videoinput: id = csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8=
audioinput: id = RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM=
audioinput: id = r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
oder wenn ein oder mehrere Medienströme aktiv sind, oder wenn dauerhafte Berechtigungen erteilt wurden:
videoinput: FaceTime HD Camera (Built-in) id=csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8=
audioinput: default (Built-in Microphone) id=RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM=
audioinput: Built-in Microphone id=r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
Spezifikationen
Specification |
---|
Media Capture and Streams # device-info |
Browser-Kompatibilität
BCD tables only load in the browser