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 January 2020.

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

Die encodingInfo() Methode des MediaCapabilities Interfaces gibt ein Promise zurück, das mit den getesteten Medienkonfigurationsfähigkeiten für die Kodierung von Medien erfüllt wird. Dies enthält die drei booleschen Eigenschaften supported, smooth und powerefficient, die beschreiben, wie kompatibel das Gerät mit der Art des Mediums ist.

Syntax

js
encodingInfo(configuration)

Parameter

configuration

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

type

Der Typ des getesteten Mediums. Dies nimmt einen von zwei Werten an:

record

Repräsentiert eine Konfiguration für die Aufzeichnung von Medien, z.B. unter Verwendung von MediaRecorder.

webrtc

Repräsentiert eine Konfiguration, die über elektronische Mittel übertragen werden soll (z.B. unter Verwendung von RTCPeerConnection). Hinweis: Firefox verwendet transmission für diesen Typ, und webrtc funktioniert nicht.

transmission Nicht standardisiert

Das Synonym für webrtc, das in Firefox verwendet werden soll.

video

Konfigurationsobjekt für eine Video-Medienquelle. Dies hat die folgenden Eigenschaften:

contentType

String, der einen gültigen Video-MIME-Typ enthält und (optional) ein codecs Parameter.

width

Die Breite des Videos.

height

Die Höhe des Videos.

bitrate

Die Anzahl der Bits, die verwendet werden, um eine Sekunde der Videodatei zu kodieren.

framerate

Die Anzahl der Bilder, die eine Sekunde der Videowiedergabe ausmachen.

audio

Konfigurationsobjekt für eine Audio-Medienquelle. Dies hat die folgenden Eigenschaften:

contentType

String, der einen gültigen Audio-MIME-Typ enthält und (optional) ein codecs Parameter.

channels

Die Anzahl der Kanäle, die von der Audiospur verwendet werden.

bitrate

Die Anzahl der Bits, die verwendet werden, um eine Sekunde der Audiodatei zu kodieren.

samplerate

Die Anzahl der Audio-Samples, die eine Sekunde der Audiodatei ausmachen.

Rückgabewert

Ein Promise, das mit einem Objekt erfüllt wird, das drei boolesche Attribute enthält:

supported

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

smooth

true, wenn die Wiedergabe der Medien reibungslos (von hoher Qualität) erfolgen wird. Andernfalls ist es false.

powerEfficient

true, wenn die Wiedergabe der Medien energieeffizient erfolgen wird. 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 Audio-Codecs gelten als energieeffizient.

Ausnahmen

TypeError

Wird ausgelöst, 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 gibt einen anderen Fehler in der an die Methode übergebenen Medienkonfiguration, einschließlich des Weglassens 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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
encodingInfo

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch