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: removedRanges-Eigenschaft

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.

Die schreibgeschützte removedRanges-Eigenschaft der BufferedChangeEvent-Schnittstelle gibt ein TimeRanges-Objekt zurück, das die Zeitbereiche darstellt, die aus dem zugehörigen ManagedSourceBuffer entfernt wurden. Dies sind die Bereiche, die zwischen den letzten updatestart- und updateend-Events entfernt wurden, während des letzten Durchlaufs des kodierten Frame-Entfernungs- oder Frame-Verdrängungsalgorithmus oder als Folge des Ausführens des Speicherbereinigungsalgorithmus durch den Benutzeragenten.

Wert

Ein TimeRanges-Objekt.

Beispiele

Entfernte Bereiche bei einer Pufferänderung protokollieren

Dieses Beispiel erstellt eine ManagedMediaSource, bindet diese an ein <video>-Element an, ruft eine fragmentierte MP4-Datei ab und entfernt dann einen Teil der gepufferten Daten. Der bufferedchange-Ereignishandler protokolliert alle entfernten 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) => {
      const removed = event.removedRanges;
      for (let i = 0; i < removed.length; i++) {
        console.log(`Removed range: ${removed.start(i)}s - ${removed.end(i)}s`);
      }
    });

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

    // Once appended, remove the first 5 seconds to trigger removedRanges
    sourceBuffer.addEventListener(
      "updateend",
      () => {
        sourceBuffer.remove(0, 5);
      },
      { once: true },
    );
  });
}

Spezifikationen

Specification
Media Source Extensions™
# dom-bufferedchangeevent-removedranges

Browser-Kompatibilität

Siehe auch