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

View in English Always switch to English

BufferedChangeEvent

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 BufferedChangeEvent Interface der Media Source Extensions API repräsentiert das Ereignisobjekt für das bufferedchange-Ereignis, das auf einem ManagedSourceBuffer ausgelöst wird. Dieses Ereignis wird immer dann ausgelöst, wenn sich die gepufferten Bereiche des ManagedSourceBuffer ändern, zum Beispiel als Ergebnis von Aufrufen wie appendBuffer(), remove() oder endOfStream(), oder wenn der Benutzeragent den Speicherbereinigungsalgorithmus ausführt.

Event BufferedChangeEvent

Konstruktor

BufferedChangeEvent()

Erstellt und gibt ein neues BufferedChangeEvent-Objekt zurück.

Instanz-Eigenschaften

Erbt auch Eigenschaften von seinem Eltern-Interface, Event.

BufferedChangeEvent.addedRanges Schreibgeschützt

Ein TimeRanges-Objekt, das die Zeitbereiche repräsentiert, die dem Puffer des ManagedSourceBuffer hinzugefügt wurden.

BufferedChangeEvent.removedRanges Schreibgeschützt

Ein TimeRanges-Objekt, das die Zeitbereiche repräsentiert, die aus dem Puffer des ManagedSourceBuffer entfernt wurden.

Beispiele

Umgang mit Änderungen der gepufferten Bereiche

Dieses Beispiel erstellt eine ManagedMediaSource, fügt sie einem <video>-Element hinzu, holt eine fragmentierte MP4-Datei und lauscht auf das bufferedchange-Ereignis. Wenn das Ereignis ausgelöst wird, protokolliert es die hinzugefügten Zeitbereiche.

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);

  source.addEventListener("sourceopen", async () => {
    const sourceBuffer = source.addSourceBuffer(mediaType);

    sourceBuffer.addEventListener("bufferedchange", (event) => {
      for (let i = 0; i < event.addedRanges.length; i++) {
        console.log(
          `Added range: ${event.addedRanges.start(i)} - ${event.addedRanges.end(i)}`,
        );
      }
    });

    const response = await fetch(videoUrl);
    const data = await response.arrayBuffer();
    sourceBuffer.appendBuffer(data);
  });
}

Spezifikationen

Specification
Media Source Extensions™
# dom-bufferedchangeevent

Browser-Kompatibilität

Siehe auch