RTCEncodedAudioFrame: data 属性
注意:此功能在 专用 Web Workers 中可用。
data 属性是 RTCEncodedAudioFrame 接口的一部分,它返回一个包含已编码帧数据的缓冲区。
值
一个 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);
});
请注意,此处显示的 surrounding code 在 使用 WebRTC 已编码转换 中有描述。
规范
| 规范 |
|---|
| WebRTC Encoded Transform # dom-rtcencodedaudioframe-data |
浏览器兼容性
加载中…