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

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

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

js
// 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

Siehe auch