The data
property of the RTCEncodedAudioFrame
interface returns a buffer containing the data for an encoded frame.
The data
property of the RTCEncodedAudioFrame
interface returns a buffer containing the data for an encoded frame.
An ArrayBuffer
.
This example WebRTC encoded transform shows how you might get the frame data in a TransformStream
transform()
function modify the bits.
The transform()
function constructs a DataView
on the buffer in the frame data
property, and also creates a view on a new ArrayBuffer
. It then writes the negated bytes in the original data to the new buffer, assigns the buffer to the encoded frame data
property, and enqueues the modified frame on the stream.
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); });
Note that the surrounding code shown here is described in Using WebRTC Encoded Transforms.
Specification |
---|
WebRTC Encoded Transform # dom-rtcencodedaudioframe-data |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
data |
86 | 86 | 117 | No | 72 | 15.4 | 86 | 86 | 117 | 61 | 15.4 | 14.0 |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame/data