MediaSource: Methode addSourceBuffer()
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 addSourceBuffer()-Methode der MediaSource-Schnittstelle erstellt einen neuen SourceBuffer des angegebenen MIME-Typs und fügt ihn der MediaSource-Liste sourceBuffers hinzu. Der neue SourceBuffer wird ebenfalls zurückgegeben.
Syntax
addSourceBuffer(mimeType)
Parameter
mimeType-
Ein String, der den MIME-Typ des zu erstellenden und hinzuzufügenden
SourceBufferzurMediaSourceangibt.
Rückgabewert
Ein SourceBuffer-Objekt, das den neuen Quellpuffer darstellt, der erstellt und zur Medienquelle hinzugefügt wurde.
Ausnahmen
InvalidAccessErrorDOMException-
Wird ausgelöst, wenn der für
mimeTypeangegebene Wert ein leerer String anstelle eines gültigen MIME-Typs ist. InvalidStateErrorDOMException-
Wird ausgelöst, wenn die
MediaSourcenicht im Status"open"readyStateist. NotSupportedErrorDOMException-
Wird ausgelöst, wenn der angegebene
mimeTypevom User-Agent nicht unterstützt wird oder nicht mit den MIME-Typen andererSourceBuffer-Objekte kompatibel ist, die bereits in der ListesourceBuffersder Medienquelle enthalten sind. QuotaExceededError-
Wird ausgelöst, wenn der User-Agent keine weiteren
SourceBuffer-Objekte verarbeiten kann oder das Erstellen eines neuenSourceBuffermit dem gegebenenmimeTypezu einer nicht unterstützten Konfiguration vonSourceBuffers führen würde.
Beispiele
Der folgende Ausschnitt stammt aus einem Beispiel von Nick Desaulniers (sehen Sie sich das vollständige Demo live an oder laden Sie den Quellcode herunter für weitere Untersuchungen). Die Funktion getMediaSource(), die hier nicht definiert ist, gibt eine 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"';
const mediaSource = getMediaSource();
if ("MediaSource" in window && MediaSource.isTypeSupported(mimeCodec)) {
console.log(mediaSource.readyState); // closed
mediaSource.addEventListener("sourceopen", sourceOpen);
video.src = URL.createObjectURL(mediaSource);
} 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-addsourcebuffer> |
Browser-Kompatibilität
Loading…