RTCTransformEvent
RTCTransformEvent 是 WebRTC API 的一部分,它表示當一個編碼幀已被排隊等待由 WebRTC Encoded Transform 進行處理時所觸發的事件。
該介面有一個 transformer 屬性,該屬性暴露了一個可讀流和一個可寫流。工作執行緒應從 transformer.readable 讀取編碼幀,根據需要進行修改,然後將它們按相同順序且無重複地寫入 transformer.writable。
在撰寫本文時,只有一種基於 RTCTransformEvent 的事件:rtctransform。
例項屬性
由於 RTCTransformEvent 是基於 Event 的,因此它的屬性也可用。
RTCTransformEvent.transformer只讀-
返回與事件關聯的
RTCRtpScriptTransformer。
轉換事件型別
只有一種轉換事件型別。
rtctransform
當構造關聯的 RTCRtpScriptTransform 物件時,以及每當有新的編碼影片或音訊幀被加入佇列等待處理時,都會在工作執行緒全域性作用域上觸發 rtctransform 事件。
您可以使用 DedicatedWorkerGlobalScope.addEventListener() 或 onrtctransform 事件處理程式屬性來新增 rtctransform 事件監聽器,以便在新幀可用時獲得通知。
示例
此示例建立了 rtctransform 事件的事件監聽器。
該示例假設我們有一個 TransformStream,其中 options 物件是從主執行緒中的 RTCRtpScriptTransform 建構函式傳遞過來的。最後的程式碼展示了流如何從 readable 透過轉換流管道傳輸到 writable。
addEventListener("rtctransform", (event) => {
let transform;
// Select a transform based on passed options
if (event.transformer.options.name === "senderTransform") {
transform = createSenderTransform(); // A TransformStream (not shown)
} else if (event.transformer.options.name === "receiverTransform") {
transform = createReceiverTransform(); // A TransformStream (not shown)
}
// Pipe frames from the readable to writeable through TransformStream
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
請注意,此程式碼是 使用 WebRTC 編碼轉換 中提供的更完整示例的一部分。
規範
| 規範 |
|---|
| WebRTC Encoded Transform # rtctransformevent |
瀏覽器相容性
載入中…