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
.
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.
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