ManagedMediaSource: endstreaming 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 endstreaming-Ereignis des ManagedMediaSource-Interfaces wird ausgelöst, wenn sich die streaming-Eigenschaft von true auf false ändert. Dies zeigt an, dass der User-Agent genügend Daten gepuffert hat, um eine unterbrechungsfreie Wiedergabe zu gewährleisten, und die Anwendung das Abrufen neuer Mediensegmente beenden kann.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("endstreaming", (event) => {});
onendstreaming = (event) => {};
Ereignistyp
Ein generisches Event.
Beispiele
>Anhalten des Abrufens als Reaktion auf endstreaming
Dieses Beispiel erstellt eine ManagedMediaSource, hängt sie an ein <video>-Element an und verwendet die startstreaming- und endstreaming-Ereignisse, um zu steuern, wann Mediensegmente abgerufen werden.
const videoUrl =
"https://mdn.github.io/shared-assets/videos/flower-fragmented.mp4";
const mediaType = 'video/mp4; codecs="avc1.64001F, mp4a.40.2"';
if (ManagedMediaSource.isTypeSupported(mediaType)) {
const video = document.createElement("video");
const source = new ManagedMediaSource();
video.controls = true;
video.disableRemotePlayback = true;
video.src = URL.createObjectURL(source);
document.body.appendChild(video);
let shouldFetch = false;
source.addEventListener("sourceopen", () => {
const sourceBuffer = source.addSourceBuffer(mediaType);
source.addEventListener("startstreaming", async () => {
console.log("startstreaming — fetching media data");
shouldFetch = true;
const response = await fetch(videoUrl);
const data = await response.arrayBuffer();
if (shouldFetch) {
sourceBuffer.appendBuffer(data);
}
});
source.addEventListener("endstreaming", () => {
console.log("endstreaming — enough data buffered");
shouldFetch = false;
});
});
}
Spezifikationen
| Specification |
|---|
| Media Source Extensions™> # dfn-endstreaming> |