RTCEncodedAudioFrame:data 属性

注意:此功能在专用 Web 工作线程中可用。

RTCEncodedAudioFrame 接口的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 编码转换
# dom-rtcencodedaudioframe-data

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅