RTCRtpScriptTransformer: readable-Eigenschaft
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die schreibgeschützte Eigenschaft readable
der Schnittstelle RTCRtpScriptTransformer
gibt eine Instanz des ReadableStream
zurück, die als Quelle für kodierte Medienrahmen dient.
Wenn die entsprechende RTCRtpScriptTransform
in die WebRTC-Sender- und Empfänger-Pipelines eingefügt wird, kann dieser Stream mit ausgehenden oder eingehenden kodierten Medienrahmen (RTCEncodedVideoFrame
oder RTCEncodedAudioFrame
) gefüllt werden.
Eine kodierte WebRTC-Transformation kann die Rahmen lesen, sie bei Bedarf modifizieren und dann zurück in die WebRTC-Pipeline senden, indem sie an RTCRtpScriptTransformer.writable
geschrieben werden.
Eine übliche Methode, diese Operation auszuführen, ist das Durchleiten der Rahmen durch einen TransformStream
.
Wert
Ein ReadableStream
.
Beispiele
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 der entsprechenden RTCRtpScriptTransform
ausgelöst wird und wenn neue Rahmen zur Verarbeitung eingereiht werden.
event.transformer
ist der RTCRtpScriptTransformer
, der über eine readable
- und writable
-Eigenschaft verfügt.
Ein anderer TransformStream
wird erstellt, um ausgehende und eingehende Rahmen zu verarbeiten, wobei createSenderTransform()
oder createReceiverTransform()
verwendet werden (Implementierungen nicht gezeigt).
Der Ereignishandler wählt den richtigen Transform-Stream basierend auf den übergebenen Optionen aus dem Konstruktor RTCRtpScriptTransform
und weist ihn transform
zu.
Der Code ruft ReadableStream.pipeThrough()
für das readable
auf, um kodierte Rahmen durch den ausgewählten TransformStream
zu leiten, und dann ReadableStream.pipeTo()
, um sie zu RTCRtpScriptTransformer.writable
zu leiten.
Spezifikationen
Specification |
---|
WebRTC Encoded Transform # dom-rtcrtpscripttransformer-readable |
Browser-Kompatibilität
BCD tables only load in the browser