MediaSource: isTypeSupported() statische Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Die statische Methode MediaSource.isTypeSupported() gibt einen booleschen Wert zurück, der true ist, wenn der angegebene MIME-Typ und (optional) der Codec wahrscheinlich vom aktuellen Benutzeragent unterstützt werden.

Das bedeutet, dass erfolgreich SourceBuffer-Objekte für diesen Medientyp erstellt werden können. Wenn der zurückgegebene Wert false ist, ist der Benutzeragent sicher, dass Medien im angegebenen Format nicht zugänglich sind.

Syntax

js
MediaSource.isTypeSupported(type)

Parameter

type

Ein String, der den MIME-Typ der Medien angibt und (optional) einen codecs Parameter enthält, der eine durch Kommas getrennte Liste der unterstützten Codecs enthält.

Rückgabewert

Ein Wert von false, wenn Medien des angegebenen Typs nicht abgespielt werden.

Ein Wert von true wird zurückgegeben, wenn der Browser Medien des angegebenen Typs wahrscheinlich abspielen kann. Dies ist keine Garantie, und Ihr Code muss auf die Möglichkeit vorbereitet sein, dass die Medien möglicherweise nicht korrekt oder überhaupt nicht abgespielt werden.

Alle Web-APIs, die mit Mediendateien arbeiten, verwenden bei der Bestimmung, ob ein Medientyp verwendet werden kann, einen "Nein/Vielleicht/Wahrscheinlich"-Ansatz (oder, in diesem Fall, "Nein oder Wahrscheinlich"). Dies liegt daran, dass Mediendateien komplexe, komplizierte Konstrukte mit zu vielen subtilen Variationen sind, um absolut sicher zu sein, bevor Sie tatsächlich den Inhalt der Medien verwenden.

Beispiele

Der folgende Ausschnitt stammt aus einem Beispiel von Nick Desaulniers (das vollständige Demo live ansehen oder den Quellcode herunterladen für weitere Untersuchungen). Die Funktion getMediaSource(), die hier nicht definiert ist, gibt ein MediaSource zurück.

js
const assetURL = "frag_bunny.mp4";
// Need to be specific for Blink regarding codecs
// ./mp4info frag_bunny.mp4 | grep Codec
const mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
let mediaSource;

if ("MediaSource" in window && MediaSource.isTypeSupported(mimeCodec)) {
  mediaSource = getMediaSource();
  console.log(mediaSource.readyState); // closed
  video.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener("sourceopen", sourceOpen);
} else {
  console.error("Unsupported MIME type or codec: ", mimeCodec);
}

function sourceOpen() {
  console.log(this.readyState); // open
  const sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
  fetchAB(assetURL, (buf) => {
    sourceBuffer.addEventListener("updateend", () => {
      mediaSource.endOfStream();
      video.play();
      console.log(mediaSource.readyState); // ended
    });
    sourceBuffer.appendBuffer(buf);
  });
}

Spezifikationen

Specification
Media Source Extensions™
# dom-mediasource-istypesupported

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
isTypeSupported() static method

Legend

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

Full support
Full support
Partial support
Partial support
No support
No support
See implementation notes.

Siehe auch