RTCTransformEvent

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die RTCTransformEvent des WebRTC-API stellt ein Ereignis dar, das in einem dedizierten Worker ausgelöst wird, wenn ein kodierter Frame in die Warteschlange für die Verarbeitung durch einen WebRTC Encoded Transform eingereiht wurde.

Die Schnittstelle verfügt über eine transformer Eigenschaft, die einen lesbaren und einen beschreibbaren Stream bereitstellt. Ein Worker sollte kodierte Frames aus transformer.readable lesen, sie nach Bedarf modifizieren und in der gleichen Reihenfolge und ohne Duplikate in transformer.writable schreiben.

Zum Zeitpunkt der Erstellung gibt es nur ein Ereignis basierend auf RTCTransformEvent: rtctransform.

Event RTCTransformEvent

Instanzeigenschaften

Da RTCTransformEvent auf Event basiert, sind dessen Eigenschaften ebenfalls verfügbar.

RTCTransformEvent.transformer Nur lesbar

Gibt den mit dem Ereignis verknüpften RTCRtpScriptTransformer zurück.

Transform-Ereignistypen

Es gibt nur einen Typ von Transform-Ereignis.

rtctransform

Das rtctransform Ereignis wird im Worker-Global-Scope bei der Erstellung eines zugehörigen RTCRtpScriptTransform sowie jedes Mal ausgelöst, wenn ein neuer kodierter Video- oder Audio-Frame zur Verarbeitung eingereiht wird.

Sie können einen rtctransform-Ereignislistener hinzufügen, um benachrichtigt zu werden, wenn der neue Frame verfügbar ist, indem Sie entweder DedicatedWorkerGlobalScope.addEventListener() oder die onrtctransform-Ereignis-Handler-Eigenschaft verwenden.

Beispiel

Dieses Beispiel erstellt einen Ereignislistener für das rtctransform Ereignis.

Das Beispiel geht davon aus, dass wir einen TransformStream mit einem options-Objekt haben, das von einem RTCRtpScriptTransform Konstruktor im Haupt-Thread übergeben wird. Der Code am Ende zeigt, wie der Stream durch den Transform-Stream von readable nach writable geleitet wird.

js
addEventListener("rtctransform", (event) => {
  let transform;
  // Select a transform based on passed options
  if (event.transformer.options.name == "senderTransform") {
    transform = createSenderTransform(); // A TransformStream (not shown)
  } else if (event.transformer.options.name == "receiverTransform") {
    transform = createReceiverTransform(); // A TransformStream (not shown)
  }
  // Pipe frames from the readable to writeable through TransformStream
  event.transformer.readable
    .pipeThrough(transform)
    .pipeTo(event.transformer.writable);
});

Beachten Sie, dass dieser Code Teil eines ausführlicheren Beispiels ist, das in Using WebRTC Encoded Transforms bereitgestellt wird.

Spezifikationen

Specification
WebRTC Encoded Transform
# rtctransformevent

Browser-Kompatibilität

BCD tables only load in the browser