RTCEncodedAudioFrame: data property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2023.

Note: This feature is available in Dedicated Web Workers.

Thuộc tính data của giao diện RTCEncodedAudioFrame trả về một buffer chứa dữ liệu cho một khung đã mã hóa.

Giá trị

Một ArrayBuffer.

Ví dụ

WebRTC encoded transform này cho thấy cách bạn có thể lấy dữ liệu khung trong hàm transform() của TransformStream để sửa đổi các bit.

Hàm transform() xây dựng một DataView trên buffer trong thuộc tính data của khung, và cũng tạo một view trên một ArrayBuffer mới. Sau đó nó ghi các byte phủ định trong dữ liệu gốc vào buffer mới, gán buffer cho thuộc tính data của khung đã mã hóa và thêm khung đã sửa đổi vào luồng.

js
addEventListener("rtctransform", (event) => {
  const transform = new TransformStream({
    async transform(encodedFrame, controller) {
      // Tái tạo khung gốc.
      const view = new DataView(encodedFrame.data);

      // Xây dựng buffer mới
      const newData = new ArrayBuffer(encodedFrame.data.byteLength);
      const newView = new DataView(newData);

      // Phủ định tất cả các bit trong khung đến
      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);
});

Lưu ý rằng mã xung quanh được mô tả trong Using WebRTC Encoded Transforms.

Thông số kỹ thuật

Specification
WebRTC Encoded Transform
# dom-rtcencodedaudioframe-data

Tương thích trình duyệt

Xem thêm