Das folgende Beispiel zeigt, wie readable
durch einen TransformStream
zu RTCRtpScriptTransformer.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
else if (event.transformer.options.name === "receiverTransform")
transform = createReceiverTransform(); // A TransformStream
else return;
// Pipe frames from the readable to writeable through TransformStream
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
Der Code implementiert einen Handler für das rtctransform
-Ereignis, das beim globalen Worker-Objekt beim Erstellen des entsprechenden RTCRtpScriptTransform
ausgelöst wird und wenn neue Rahmen zur Verarbeitung hinzugefügt werden. event.transformer
ist der RTCRtpScriptTransformer
, der die Eigenschaften readable
und writable
hat.
Ein unterschiedlicher TransformStream
wird erstellt, um ausgehende und eingehende Rahmen zu verarbeiten, unter Verwendung von createSenderTransform()
oder createReceiverTransform()
, jeweils (Implementierungen nicht gezeigt). Der Ereignishandler wählt den richtigen Transformationsstrom basierend auf den durch den RTCRtpScriptTransform
-Konstruktor übermittelten Optionen aus und weist ihn transform
zu.
Der Code ruft ReadableStream.pipeThrough()
auf readable
auf, um kodierte Rahmen durch den ausgewählten TransformStream
zu leiten, und dann ReadableStream.pipeTo()
, um sie zu RTCRtpScriptTransformer.writable
zu leiten.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4