1. Web
  2. Web-APIs
  3. MediaSource
  4. sourceclose

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

MediaSource: sourceclose-Ereignis

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more support for this feature? Tell us why.

Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.

Das sourceclose-Ereignis wird ausgelöst, wenn sich der readyState eines MediaSource-Objekts auf "closed" ändert. Dies weist darauf hin, dass die MediaSource von dem Medien-Element getrennt wurde.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("sourceclose", (event) => { })
onsourceclose = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Umgang mit dem sourceclose-Ereignis

Dieses Beispiel zeigt, wie ein Medien-Element von einer MediaSource getrennt wird und wie das sourceclose-Ereignis zur ordnungsgemäßen Ressourcenverwaltung behandelt wird. Der Code richtet eine MediaSource ein, verbindet sie mit einem Video-Element und hört auf das sourceclose-Ereignis. Wenn das Ereignis ausgelöst wird, führt es Bereinigungsaufgaben aus (revokeObjectURL).

js
const video = document.getElementById("myVideo");
const mediaSource = new MediaSource();
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener("sourceopen", (event) => {
 const sourceBuffer = mediaSource.addSourceBuffer(
 'video/mp4; codecs="avc1.42E01E"',
 );
 fetch("video-data.mp4")
 .then((response) => response.arrayBuffer())
 .then((data) => {
 sourceBuffer.appendBuffer(data);
 });
});
function detachMediaSource() {
 video.src = null; // Detach the MediaSource
}
mediaSource.addEventListener("sourceclose", (event) => {
 console.log("MediaSource sourceclose:", event);
 // Perform cleanup tasks here, e.g., release resources, update UI
 URL.revokeObjectURL(video.src); // Clean up the object URL
});
// Call detachMediaSource() when appropriate, e.g., on a button click
document
 .getElementById("detachButton")
 .addEventListener("click", detachMediaSource);

Spezifikationen

Spezifikation
Media Source ExtensionsTM
# dfn-sourceclose

Browser-Kompatibilität

Help improve MDN

Erfahren Sie, wie Sie beitragen können Diese Seite wurde automatisch aus dem Englischen übersetzt.

AltStyle によって変換されたページ (->オリジナル) /