MediaSource: sourceopen-Ereignis
Eingeschränkt verfügbar
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 verfügbar.
Das sourceopen-Ereignis wird ausgelöst, wenn sich der readyState eines MediaSource-Objekts zu "open" ändert.
Dies zeigt an, dass die MediaSource bereit ist, Daten von SourceBuffer-Objekten zu empfangen. Das kann geschehen, wenn das MediaSource-Objekt erstmals mit einem Medienelement verbunden wird oder wenn der readyState von "ended" zurück zu "open" wechselt.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("sourceopen", (event) => {});
Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:
onsourceopen = (event) => {};
Ereignistyp
Ein generisches Event.
Beispiele
>Das sourceopen-Ereignis behandeln
Dieses Beispiel richtet eine MediaSource ein, verbindet sie mit einem Videoelement und wartet auf das sourceopen-Ereignis. Wenn das Ereignis ausgelöst wird, fügt es einen SourceBuffer zur Verarbeitung der Videodaten hinzu, ruft die Daten ab, hängt sie an den Puffer an und gibt schließlich die Objekt-URL frei, 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
| Spezifikation |
|---|
| Media Source Extensions™> # dfn-sourceopen> |