RTCEncodedAudioFrame: Daten-Eigenschaft

Hinweis: Dieses Feature ist verfügbar in Dedicated Web Workers.

Die data-Eigenschaft des RTCEncodedAudioFrame-Interfaces gibt einen Puffer zurück, der die Daten für einen kodierten Frame enthält.

Wert

Beispiele

Dieses Beispiel eines WebRTC-kodierten Transforms zeigt, wie Sie die Frame-Daten in einer TransformStream-transform()-Funktion abrufen und die Bits modifizieren könnten.

Die transform()-Funktion erstellt ein DataView auf dem Puffer in der data-Eigenschaft des Frames und erzeugt ebenfalls eine Ansicht auf einem neuen ArrayBuffer. Dann schreibt sie die negierten Bytes der ursprünglichen Daten in den neuen Puffer, weist den Puffer der data-Eigenschaft des kodierten Frames zu und stellt den modifizierten Frame im Stream in die Warteschlange.

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);
});

Beachten Sie, dass der umgebende Code hier im Abschnitt Using WebRTC Encoded Transforms beschrieben wird.

Spezifikationen

Specification
WebRTC Encoded Transform
# dom-rtcencodedaudioframe-data

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch