RTCRtpScriptTransform: RTCRtpScriptTransform() Konstruktor
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Der RTCRtpScriptTransform()
Konstruktor erstellt ein neues RTCRtpScriptTransform
-Objekt.
Die Konstruktion des RTCRtpScriptTransform
erzeugt einen entsprechenden RTCRtpScriptTransformer
im angegebenen Worker, zusammen mit übergebenen Optionen (falls vorhanden). Objekte im dritten Parameter des Konstruktors werden übertragen.
Das rtctransform
-Ereignis wird dann im globalen Worker-Objekt ausgelöst. Der Worker-Code kann die event.transformer
-Eigenschaft verwenden, um den entsprechenden RTCRtpScriptTransformer
zu erhalten, und event.transformer.options
wird verwendet, um die Optionen zu erhalten.
Beachten Sie, dass die Optionen hauptsächlich verwendet werden, um den Worker darüber zu informieren, ob der Transformer eingehende oder ausgehende Frames verarbeitet, damit eine geeignete Transformation angewendet werden kann.
Syntax
new RTCRtpScriptTransform(worker)
new RTCRtpScriptTransform(worker, options)
new RTCRtpScriptTransform(worker, options, transfer)
Parameter
worker
-
Ein
Worker
, der Code für einen oder mehrere WebRTC-Transformations-Streams definiert. options
Optional-
Ein beliebiges Objekt, das im Worker verfügbar gemacht wird. Dies wird meistens verwendet, um den Worker darüber zu informieren, ob er in die WebRTC-Sender- oder Empfänger-Pipeline eingefügt wurde und daher, welche Transformation angewendet werden sollte. Es kann jedoch auch verwendet werden, um jedes andere Objekt zu senden, wie z. B. einen
MessagePort
zur dynamischen Kommunikation mit dem Transformer. transfer
Optional-
Ein optionales Array von übertragbaren Objekten, die an den Worker übertragen werden. Nach der Übertragung sind diese Objekte im Haupt-Thread nicht mehr verwendbar.
Ausnahmen
DataCloneError
DOMException
-
Wird ausgelöst, wenn ein Objekt in
transfer
nicht übertragen werden kann.
Beispiele
Das erste Beispiel unten zeigt die Konstruktion eines RTCRtpScriptTransform
, das dann einem RTCRtpSender.transform
zugewiesen wird.
Der Konstruktor nimmt ein optionales Objekt mit der Eigenschaft name
und senderTransform
.
Der Worker kann diese Option verwenden, um zu verstehen, wann er codierte Frames vom Encoder transformiert (anstatt eingehende Frames vom Paketierer).
// Create a worker containing a TransformStream
const worker = new Worker("worker.js");
videoSender.transform = new RTCRtpScriptTransform(worker, {
name: "senderTransform",
});
Jeder Eigenschaftenname und -wert kann in den Optionen verwendet werden, solange sie serialisierbar sind (und übertragen, wenn im letzten Konstruktorparameter spezifiziert).
Der unten stehende Code überträgt den zweiten Port eines MessageChannel
an den Worker, was wir tun könnten, um den Transformationscode dynamisch mit (zum Beispiel) einem neuen Verschlüsselungsschlüssel zu aktualisieren.
// Create a worker containing a TransformStream
const worker = new Worker("worker.js");
const channel = new MessageChannel();
const transform = new RTCRtpScriptTransform(
worker,
{ purpose: "encrypt", port: channel.port2 },
[channel.port2],
);
Spezifikationen
Specification |
---|
WebRTC Encoded Transform # dom-rtcrtpscripttransform-rtcrtpscripttransform |
Browser-Kompatibilität
BCD tables only load in the browser