MediaDeviceInfo
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2017 browserübergreifend verfügbar.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die Schnittstelle MediaDeviceInfo der Media Capture and Streams API enthält Informationen über ein einzelnes Medieneingabe- oder -ausgabegerät.
Die durch Aufruf von navigator.mediaDevices.enumerateDevices() abgerufene Geräteliste ist ein Array von MediaDeviceInfo-Objekten – eines pro Mediengerät.
Instanzeigenschaften
MediaDeviceInfo.deviceIdSchreibgeschützt-
Gibt einen String zurück, der das dargestellte Gerät sitzungsübergreifend identifiziert. Andere Anwendungen können diesen Bezeichner nicht erraten; er ist für den Ursprung der aufrufenden Anwendung eindeutig. Er wird zurückgesetzt, wenn Benutzer Cookies löschen. Beim privaten Surfen wird ein anderer Bezeichner verwendet, der nicht sitzungsübergreifend gespeichert wird.
MediaDeviceInfo.groupIdSchreibgeschützt-
Gibt einen String zurück, der die Gruppe identifiziert. Zwei Geräte haben dieselbe Gruppenkennung, wenn sie zum selben physischen Gerät gehören – beispielsweise zu einem Monitor mit integrierter Kamera und integriertem Mikrofon.
MediaDeviceInfo.kindSchreibgeschützt-
Gibt einen Aufzählungswert zurück, der entweder
"videoinput","audioinput"oder"audiooutput"ist. MediaDeviceInfo.labelSchreibgeschützt-
Gibt einen String zurück, der dieses Gerät beschreibt (beispielsweise „Externe USB-Webcam“).
Hinweis:
Aus Sicherheitsgründen ist das Feld label immer leer, es sei denn, ein Medienstrom ist aktiv oder Benutzer haben eine dauerhafte Berechtigung für den Zugriff auf Mediengeräte erteilt. Andernfalls könnten die Gerätebezeichnungen als Teil eines Fingerprinting-Mechanismus verwendet werden, um Benutzer zu identifizieren.
Instanzmethoden
MediaDeviceInfo.toJSON()-
Gibt ein JSON-serialisierbares einfaches Objekt zurück, das das
MediaDeviceInfo-Objekt repräsentiert. Wird vonJSON.stringify()automatisch aufgerufen.
Beispiel
Dieses Beispiel verwendet enumerateDevices(), um eine Liste von Geräten abzurufen.
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}`);
});
}
Das könnte Folgendes ausgeben:
videoinput: id = csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8=
audioinput: id = RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM=
audioinput: id = r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
Oder, wenn mindestens ein Medienstrom aktiv ist oder 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
| Spezifikation |
|---|
| Media Capture and Streams> # device-info> |