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
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.
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
BCD tables only load in the browser