RTCRtpScriptTransformer: readable 屬性
readable 是 RTCRtpScriptTransformer 介面的只讀屬性,它返回一個 ReadableStream 例項,該例項是編碼媒體幀的源。
當相應的 RTCRtpScriptTransform 被插入到 WebRTC 傳送者和接收者管道中時,此流可能會被編碼的傳出或傳入媒體幀(RTCEncodedVideoFrame 或 RTCEncodedAudioFrame)入隊。WebRTC 編碼轉換可以讀取幀,根據需要修改它們,然後透過寫入 RTCRtpScriptTransformer.writable 將它們傳送回 WebRTC 管道。執行此操作的常用方法是透過 TransformStream 管道傳輸幀。
值
一個 ReadableStream。
示例
以下示例顯示瞭如何將 readable 透過 TransformStream 管道傳輸到 RTCRtpScriptTransformer.writable。
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);
});
該程式碼實現了 rtctransform 事件的處理程式。該事件在相應的 RTCRtpScriptTransform 構建時以及有新幀入隊進行處理時,會在全域性 worker 物件上觸發。event.transformer 是具有 readable 和 writable 屬性的 RTCRtpScriptTransformer。
使用 createSenderTransform() 或 createReceiverTransform()(未顯示實現)分別建立了一個不同的 TransformStream 來處理傳出和傳入的幀。事件處理程式根據從 RTCRtpScriptTransform 建構函式 傳遞的選項選擇要使用的正確轉換流,並將其分配給 transform。
該程式碼呼叫 readable 上的 ReadableStream.pipeThrough() 將編碼幀透過選定的 TransformStream 管道傳輸,然後呼叫 ReadableStream.pipeTo() 將它們管道傳輸到 RTCRtpScriptTransformer.writable。
規範
| 規範 |
|---|
| WebRTC Encoded Transform # dom-rtcrtpscripttransformer-readable |
瀏覽器相容性
載入中…