MediaCapabilities: encodingInfo() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2022.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die encodingInfo()-Methode des MediaCapabilities-Interfaces liefert ein Promise, das mit den getesteten Medienkonfigurationsmöglichkeiten zur Kodierung von Medien erfüllt wird. Diese enthält die drei booleschen Eigenschaften supported, smooth und powerefficient, die beschreiben, wie kompatibel das Gerät mit der Art von Medien ist.

Syntax

js
encodingInfo(configuration)

Parameter

configuration

Ein Objekt mit einer Eigenschaft type und entweder einer video- oder audio-Eigenschaft, die eine Konfiguration des entsprechenden Typs enthält:

type

Der Typ der getesteten Medien. Dies nimmt einen von zwei Werten an:

record

Stellt eine Konfiguration für die Aufzeichnung von Medien dar, z.B. mit MediaRecorder.

webrtc

Stellt eine Konfiguration dar, die über elektronische Mittel (z.B. mittels RTCPeerConnection) übertragen werden soll. Hinweis: Firefox verwendet transmission für diesen Typ, und webrtc funktioniert nicht.

transmission Nicht standardisiert

Das Synonym zu webrtc, das in Firefox verwendet werden soll.

video

Konfigurationsobjekt für eine Video-Medienquelle. Dieses hat folgende Eigenschaften:

contentType

Zeichenkette, die einen gültigen Video-MIME-Typ und (optional) einen codecs-Parameter enthält.

width

Die Breite des Videos.

height

Die Höhe des Videos.

bitrate

Die Anzahl der Bits, die zur Kodierung einer Sekunde der Videodatei verwendet werden.

framerate

Die Anzahl der Bilder, die eine Sekunde Video-Wiedergabe ausmachen.

audio

Konfigurationsobjekt für eine Audio-Medienquelle. Dieses hat folgende Eigenschaften:

contentType

Zeichenkette, die einen gültigen Audio-MIME-Typ und (optional) einen codecs-Parameter enthält.

channels

Die Anzahl der Kanäle, die vom Audiotrack verwendet werden.

bitrate

Die Anzahl der Bits, die zur Kodierung einer Sekunde der Audiodatei verwendet werden.

samplerate

Die Anzahl der Audiosamples, die eine Sekunde der Audiodatei ausmachen.

Rückgabewert

Ein Promise liefert ein Objekt Fulfillment mit drei booleschen Attributen:

supported

true, wenn der Medieninhalt überhaupt kodiert werden kann. Andernfalls ist es false.

smooth

true, wenn die Wiedergabe des Mediens gleichmäßig (von hoher Qualität) ist. Andernfalls ist es false.

powerEfficient

true, wenn die Wiedergabe des Mediens energieeffizient ist. Andernfalls ist es false.

Browser melden eine unterstützte Medienkonfiguration als smooth und powerEfficient, bis Statistiken auf diesem Gerät aufgezeichnet wurden. Alle unterstützten Audiocodecs werden als energieeffizient gemeldet.

Ausnahmen

TypeError

Wirft einen Fehler, wenn die an die encodingInfo()-Methode übergebene configuration ungültig ist, was aus einem der folgenden Gründe der Fall sein kann:

  • der Typ ist nicht Video oder Audio,
  • der contentType ist kein gültiger Codec-MIME-Typ,
  • es liegt ein anderer Fehler in der an die Methode übergebenen Medienkonfiguration vor, einschließlich des Auslassens eines der configuration-Elemente.

Beispiele

js
// Create media configuration to be tested
const mediaConfig = {
  type: "record", // or 'transmission'
  video: {
    contentType: "video/webm;codecs=vp8.0", // valid content type
    width: 1920, // width of the video
    height: 1080, // height of the video
    bitrate: 120000, // number of bits used to encode 1s of video
    framerate: 48, // number of frames making up that 1s.
  },
};

// check support and performance
navigator.mediaCapabilities.encodingInfo(mediaConfig).then((result) => {
  console.log(
    `This configuration is ${result.supported ? "" : "not "}supported,`,
  );
  console.log(`${result.smooth ? "" : "not "}smooth, and`);
  console.log(`${result.powerEfficient ? "" : "not "}power efficient.`);
});

Spezifikationen

Specification
Media Capabilities
# ref-for-dom-mediacapabilities-encodinginfo

Browser-Kompatibilität

Siehe auch