MediaSource: sourceopen Ereignis
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.
Das sourceopen
Ereignis wird ausgelöst, wenn sich der readyState
eines MediaSource
Objekts in "open"
ändert. Dies deutet darauf hin, dass das MediaSource
bereit ist, Daten von SourceBuffer
Objekten zu empfangen. Dies kann entweder auftreten, wenn das MediaSource
Objekt erstmals an ein Medienelement angehängt wird oder wenn sich der readyState
von "ended"
zurück zu "open"
ändert.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder legen Sie eine Ereignishandler-Eigenschaft fest.
addEventListener("sourceopen", (event) => {});
onsourceopen = (event) => {};
Ereignistyp
Ein generisches Event
.
Beispiele
Umgang mit dem sourceopen Ereignis
Dieses Beispiel richtet ein MediaSource
ein, verbindet es mit einem Video-Element und lauscht auf das sourceopen
Ereignis. Wenn das Ereignis ausgelöst wird, wird ein SourceBuffer
hinzugefügt, um die Videodaten zu handhaben, die Daten werden abgerufen, dem Puffer hinzugefügt und schließlich die Objekt-URL widerrufen, wenn die Quelle endet.
const video = document.getElementById("myVideo");
const mediaSource = new MediaSource();
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener("sourceopen", (event) => {
console.log("MediaSource sourceopen:", event);
// Add source buffers and begin adding media data.
const sourceBuffer = mediaSource.addSourceBuffer(
'video/mp4; codecs="avc1.42E01E"',
);
fetch("video-data.mp4")
.then((response) => response.arrayBuffer())
.then((data) => {
sourceBuffer.appendBuffer(data);
});
});
mediaSource.addEventListener("sourceended", () => {
URL.revokeObjectURL(video.src);
});
Spezifikationen
Specification |
---|
Media Source Extensions™ # dfn-sourceopen |