RTCRtpScriptTransformer: writable Eigenschaft
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die schreibgeschützte writable
-Eigenschaft der Schnittstelle RTCRtpScriptTransformer
gibt eine WritableStream
-Instanz zurück, die als Ziel für kodierte Medienrahmen verwendet werden kann, die in die entsprechende RTCRtpScriptTransformer.readable
Warteschlange gestellt werden.
Wenn die entsprechende RTCRtpScriptTransform
in die WebRTC-Absender- und -Empfänger-Pipelines eingefügt wird, können kodierte Medienrahmen (RTCEncodedVideoFrame
oder RTCEncodedAudioFrame
) in die RTCRtpScriptTransformer.readable
Warteschlange gestellt werden. Ein WebRTC-kodierter Transform kann die Rahmen aus readable
lesen, sie nach Bedarf ändern und dann wieder in die WebRTC-Pipeline senden, indem sie an dieses writable
gesendet werden. Ein üblicher Weg, diese Operation durchzuführen, besteht darin, die Rahmen durch einen TransformStream
zu leiten.
Wert
Ein WritableStream
.
Beispiele
Das folgende Beispiel zeigt, wie RTCRtpScriptTransformer.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 bei der Konstruktion des entsprechenden RTCRtpScriptTransform
ausgelöst wird und wenn neue Rahmen zur Verarbeitung in die Warteschlange gestellt werden. event.transformer
ist der RTCRtpScriptTransformer
, der die writable
und readable
Eigenschaften hat.
Ein unterschiedlicher TransformStream
wird erstellt, um abgehende und eingehende Rahmen zu verarbeiten, unter Verwendung von createSenderTransform()
oder createReceiverTransform()
, je nachdem (Implementierungen nicht gezeigt). Der Ereignishandler wählt den korrekten Transform-Stream, basierend auf Optionen, die durch den RTCRtpScriptTransform
Konstruktor übergeben werden, und weist ihn transform
zu.
Der Code ruft ReadableStream.pipeThrough()
auf dem readable
auf, um kodierte Rahmen durch den ausgewählten TransformStream
zu leiten, und dann ReadableStream.pipeTo()
, um sie zum RTCRtpScriptTransformer.writable
zu leiten.
Spezifikationen
Specification |
---|
WebRTC Encoded Transform # dom-rtcrtpscripttransformer-writable |