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

View in English Always switch to English

ManagedMediaSource: endstreaming Ereignis

Eingeschränkt verfügbar

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

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Das endstreaming Ereignis des ManagedMediaSource Interfaces wird ausgelöst, wenn sich die streaming Eigenschaft von true zu false ändert. Dies zeigt an, dass der Benutzeragent genügend Daten gepuffert hat, um eine ununterbrochene Wiedergabe sicherzustellen, und die Anwendung das Abrufen neuer Mediensegmente stoppen kann.

Syntax

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

js
addEventListener("endstreaming", (event) => {});

onendstreaming = (event) => {};

Ereignistyp

Ein generisches Event.

Beispiele

Anhalten des Abrufs als Reaktion auf endstreaming

Dieses Beispiel erstellt ein ManagedMediaSource, fügt es einem <video> Element hinzu und verwendet die startstreaming und endstreaming Ereignisse, um zu steuern, wann Mediensegmente abgerufen werden.

js
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

Spezifikation
Media Source Extensions™
# dfn-endstreaming

Browser-Kompatibilität

Siehe auch