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

View in English Always switch to English

MediaStreamTrackGenerator

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

Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.

Hinweis: Erwägen Sie stattdessen die Verwendung von VideoTrackGenerator.

Die MediaStreamTrackGenerator-Schnittstelle der Insertable Streams for MediaStreamTrack API erstellt einen WritableStream, der als Quelle für einen MediaStreamTrack dient. Das Objekt verarbeitet einen Stream von Medien-Frames als Eingabe. Dabei kann es sich um Audio- oder Video-Frames handeln.

Konstruktor

MediaStreamTrackGenerator()

Erstellt ein neues MediaStreamTrackGenerator-Objekt, das entweder VideoFrame- oder AudioData-Objekte akzeptiert.

Instanzeigenschaften

Diese Schnittstelle erbt außerdem Eigenschaften von MediaStreamTrack.

MediaStreamTrackGenerator.writable

Ein WritableStream.

Instanzmethoden

Diese Schnittstelle implementiert keine eigenen Methoden, erbt aber Methoden von MediaStreamTrack.

Beispiele

Das folgende Beispiel stammt aus dem Artikel Einfügbare Streams für MediaStreamTrack und zeigt eine Barcode-Scanner-Anwendung. Sie verarbeitet Barcodes und hebt sie hervor, bevor sie die transformierten Frames in den beschreibbaren Stream von MediaStreamTrackGenerator.writable schreibt.

js
const stream = await getUserMedia({ video: true });
const videoTrack = stream.getVideoTracks()[0];

const trackProcessor = new MediaStreamTrackProcessor({ track: videoTrack });
const trackGenerator = new MediaStreamTrackGenerator({ kind: "video" });

const transformer = new TransformStream({
  async transform(videoFrame, controller) {
    const barcodes = await detectBarcodes(videoFrame);
    const newFrame = highlightBarcodes(videoFrame, barcodes);
    videoFrame.close();
    controller.enqueue(newFrame);
  },
});

trackProcessor.readable
  .pipeThrough(transformer)
  .pipeTo(trackGenerator.writable);

Spezifikationen

Diese Funktion scheint in keiner Spezifikation definiert zu sein.

Browser-Kompatibilität

Siehe auch