Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

MediaDeviceInfo: Methode toJSON()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2018 browserübergreifend verfügbar.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die Methode toJSON() der Schnittstelle MediaDeviceInfo gibt ein JSON-serialisierbares einfaches Objekt zurück, das das MediaDeviceInfo-Objekt repräsentiert.

Die Methode wird bei der JSON-Serialisierung automatisch von JSON.stringify() aufgerufen, wenn ein MediaDeviceInfo-Objekt verarbeitet wird.

Syntax

js
toJSON()

Parameter

Keine.

Rückgabewert

Ein JSON-serialisierbares einfaches Objekt mit den folgenden Eigenschaften:

Der Wert jeder Eigenschaft wird unverändert übernommen.

Beispiele

toJSON() direkt aufrufen

Dieses Beispiel ruft ein MediaDeviceInfo-Objekt ab. Ein direkter Aufruf von toJSON() gibt ein einfaches Objekt zurück. Dessen Eigenschaften haben dieselben Werte wie die entsprechenden Eigenschaften des ursprünglichen Objekts.

js
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
  console.log("enumerateDevices() not supported.");
} else {
  // List cameras and microphones.
  navigator.mediaDevices
    .enumerateDevices()
    .then((devices) => {
      devices.forEach((device) => {
        const json = device.toJSON();
        console.log(json); // A plain object
        console.log(typeof json); // "object"
        console.log(json.deviceId); // Same value as device.deviceId
      });
    })
    .catch((err) => {
      console.log(`${err.name}: ${err.message}`);
    });
}

In einen JSON-String serialisieren

Innerhalb des forEach()-Callbacks aus dem vorherigen Beispiel kann dasselbe Objekt mit JSON.stringify() serialisiert werden. Dabei wird die Methode toJSON() automatisch aufgerufen.

js
console.log(JSON.stringify(device));

Dies würde einen JSON-String wie den folgenden protokollieren (zur besseren Lesbarkeit formatiert):

json
{
  "deviceId": "HJtTemQTM64Bivxv3ZEyKjCi1VR8042lPNpmXKObKJE=",
  "kind": "videoinput",
  "label": "",
  "groupId": "Okm2l1YZTrwy8awTxE8QSLNFoVMdIXx++wLh68tbmv0="
}

Jedes weitere Gerät wird als separater JSON-String protokolliert.

Spezifikationen

Spezifikation
Media Capture and Streams
# dom-mediadeviceinfo-tojson

Browser-Kompatibilität

Siehe auch