RTCTransformEvent

Limited availability

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

Der RTCTransformEvent der WebRTC API repräsentiert ein Ereignis, das in einem dedizierten Worker ausgelöst wird, wenn ein kodiertes Frame zur 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 von transformer.readable lesen, sie bei Bedarf modifizieren und in der gleichen Reihenfolge und ohne Duplikate in transformer.writable schreiben.

Zum Zeitpunkt der Erstellung gibt es nur ein Ereignis, das auf RTCTransformEvent basiert: rtctransform.

Event RTCTransformEvent

Instanzeigenschaften

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

RTCTransformEvent.transformer Schreibgeschützt

Gibt den mit dem Ereignis verbundenen RTCRtpScriptTransformer zurück.

Transform-Ereignistypen

Es gibt nur einen Typ von Transform-Ereignis.

rtctransform

Das rtctransform Ereignis wird im Worker-Globalbereich beim Aufbau eines zugehörigen RTCRtpScriptTransform ausgelöst und immer dann, wenn ein neuer kodierter Video- oder Audioblock zur Verarbeitung eingereiht wird.

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

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 Hauptthread übergeben wurde. Der Code am Ende zeigt, wie der Stream durch den Transformationsstrom von readable zu 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 vollständigeren Beispiels ist, das in Using WebRTC Encoded Transforms bereitgestellt wird.

Spezifikationen

Specification
WebRTC Encoded Transform
# rtctransformevent

Browser-Kompatibilität