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