| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/SourceBuffer | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfgbar.
Das SourceBuffer-Interface reprsentiert ein Medienstck, das ber ein HTMLMediaElement und ein MediaSource-Objekt weitergegeben und abgespielt werden soll. Dieses kann aus einem oder mehreren Mediensegmenten bestehen.
SourceBuffer.appendWindowEndSteuert den Zeitstempel fr das Ende des Append-Fensters.
SourceBuffer.appendWindowStartSteuert den Zeitstempel fr den Beginn des Append-Fensters. Dies ist ein Zeitstempelbereich, der verwendet werden kann, um zu filtern, welche Mediendaten in den SourceBuffer eingefgt werden. Codierte Medienframes mit Zeitstempeln innerhalb dieses Bereichs werden hinzugefgt, whrend diejenigen auerhalb des Bereichs herausgefiltert werden.
SourceBuffer.audioTracks SchreibgeschtztEine Liste der aktuell im SourceBuffer enthaltenen Audiotracks.
SourceBuffer.buffered SchreibgeschtztGibt die aktuell im SourceBuffer gepufferten Zeitbereiche zurck.
SourceBuffer.modeSteuert, wie die Reihenfolge der Mediensegmente im SourceBuffer gehandhabt wird, in Bezug darauf, ob sie in beliebiger Reihenfolge hinzugefgt werden knnen oder in strikter Abfolge bleiben mssen.
SourceBuffer.textTracks Schreibgeschtzt Eine Liste der aktuell im SourceBuffer enthaltenen Texttracks.
SourceBuffer.timestampOffsetSteuert die Verschiebung, die auf Zeitstempel innerhalb von Mediensegmenten angewendet wird, die anschlieend dem SourceBuffer hinzugefgt werden.
SourceBuffer.updating SchreibgeschtztEin boolescher Wert, der angibt, ob der SourceBuffer derzeit aktualisiert wird d.h. ob eine appendBuffer()- oder remove()-Operation derzeit im Gange ist.
SourceBuffer.videoTracks SchreibgeschtztEine Liste der aktuell im SourceBuffer enthaltenen Videotracks.
Erbt Methoden von seiner Elternschnittstelle, EventTarget.
SourceBuffer.abort()Bricht das aktuelle Segment ab und setzt den Segment-Parser zurck.
SourceBuffer.appendBuffer()Fgt Media-Segmentdaten von einem ArrayBuffer, einem TypedArray oder einem DataView-Objekt in den SourceBuffer ein.
SourceBuffer.appendBufferAsync() Startet den Prozess des asynchronen Hinzufgens des angegebenen Buffers zum SourceBuffer. Gibt ein Promise zurck, das erfllt wird, sobald der Buffer hinzugefgt wurde.
SourceBuffer.changeType()ndert den MIME-Typ, den zuknftige Aufrufe von appendBuffer() erwarten, dass die neuen Daten entsprechen.
SourceBuffer.remove()Entfernt Mediensegmente innerhalb eines bestimmten Zeitbereichs aus dem SourceBuffer.
SourceBuffer.removeAsync() Startet den Prozess des asynchronen Entfernens von Mediensegmenten im angegebenen Bereich aus dem SourceBuffer. Gibt ein Promise zurck, das erfllt wird, sobald alle passenden Segmente entfernt wurden.
abortWird ausgelst, wenn das Buffer-Hinzufgen abgebrochen wird, weil die SourceBuffer.abort()- oder MediaSource.removeSourceBuffer()-Methode aufgerufen wird, whrend der SourceBuffer.appendBuffer()-Algorithmus noch luft. SourceBuffer.updating wechselt von true zu false.
errorWird ausgelst, wenn ein Fehler whrend der Verarbeitung einer appendBuffer()-Operation auftritt. SourceBuffer.updating wechselt von true zu false.
updateWird immer dann ausgelst, wenn SourceBuffer.appendBuffer() oder SourceBuffer.remove() abgeschlossen ist. SourceBuffer.updating wechselt von true zu false.
updateendWird nach dem (nicht unbedingt erfolgreichen) Abschluss einer appendBuffer() oder remove()-Operation ausgelst. Dieses Ereignis wird nach den Ereignissen update, error oder abort ausgelst.
updatestartWird ausgelst, wenn eine appendBuffer() oder remove()-Operation beginnt. updating wechselt von false zu true.
Das folgende Beispiel ldt ein Video so schnell wie mglich in Teilen und spielt es ab, sobald es mglich ist.
Sie knnen den vollstndigen Code unter https://github.com/mdn/dom-examples/tree/main/sourcebuffer sehen und die Demo live unter https://mdn.github.io/dom-examples/sourcebuffer/ ausprobieren.
const video = document.querySelector("video");
const assetURL = "frag_bunny.mp4";
// Need to be specific for Blink regarding codecs
const mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
function loadVideo() {
if (MediaSource.isTypeSupported(mimeCodec)) {
const mediaSource = new MediaSource();
console.log(mediaSource.readyState); // closed
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener("sourceopen", sourceOpen);
} else {
console.error("Unsupported MIME type or codec: ", mimeCodec);
}
}
async function sourceOpen() {
console.log(this.readyState); // open
const sourceBuffer = this.addSourceBuffer(mimeCodec);
const response = await fetch(assetURL);
const buffer = await response.arrayBuffer();
sourceBuffer.addEventListener("updateend", () => {
this.endOfStream();
video.play();
console.log(this.readyState); // ended
});
sourceBuffer.appendBuffer(buffer);
}
const load = document.querySelector("#load");
load.addEventListener("click", loadVideo);
| Spezifikation |
|---|
| Media Source Extensions # sourcebuffer |
SourceBufferDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |