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.

js
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.

js
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

Browser-Kompatibilität