RTCEncodedVideoFrame: data 屬性
注意:此功能在 專用 Web Workers 中可用。
RTCEncodedVideoFrame 介面的 data 屬性會返回一個包含幀資料的緩衝區。
值
一個 ArrayBuffer。
示例
此 WebRTC 編碼轉換 示例演示瞭如何在 TransformStream 的 transform() 函式中獲取幀資料並將其所有位取反。
transform() 函式在幀 data 屬性的緩衝區上構造一個 DataView,並建立一個新的 ArrayBuffer 檢視。然後,它將原始資料中的反轉位元組寫入新緩衝區,將該緩衝區賦值給編碼幀的 data 屬性,並將修改後的幀新增到流中。
js
addEventListener("rtctransform", (event) => {
const transform = new TransformStream({
async transform(encodedFrame, controller) {
// Reconstruct the original frame.
const view = new DataView(encodedFrame.data);
// Construct a new buffer
const newData = new ArrayBuffer(encodedFrame.data.byteLength);
const newView = new DataView(newData);
// Negate all bits in the incoming frame
for (let i = 0; i < encodedFrame.data.byteLength; ++i) {
newView.setInt8(i, ~view.getInt8(i));
}
encodedFrame.data = newData;
controller.enqueue(encodedFrame);
},
});
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
請注意,此處顯示的周圍程式碼在 使用 WebRTC 編碼轉換 中有詳細描述。
規範
| 規範 |
|---|
| WebRTC Encoded Transform # dom-rtcencodedvideoframe-data |
瀏覽器相容性
載入中…