Baseline 2023 *
Newly available
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Das RTCEncodedAudioFrame
der WebRTC API repräsentiert einen kodierten Audio-Frame im Empfangs- oder Sendepipeline von WebRTC, der mithilfe eines WebRTC Encoded Transform modifiziert werden kann.
Die Schnittstelle stellt Methoden und Eigenschaften zur Verfügung, um Metadaten des Frames abzurufen, was es ermöglicht, das Format und die Reihenfolge innerhalb der Sequenz der Frames zu bestimmen. Die data
-Eigenschaft bietet Zugriff auf die kodierten Frame-Daten als Buffer, der möglicherweise verschlüsselt oder anderweitig durch einen Transform modifiziert wurde.
RTCEncodedAudioFrame.timestamp
Schreibgeschützt Veraltet Nicht standardisiert
Gibt den Zeitstempel zurück, zu dem die Abtastung des Frames begonnen hat.
RTCEncodedAudioFrame.data
Gibt einen Buffer zurück, der die kodierten Frame-Daten enthält.
RTCEncodedAudioFrame.getMetadata()
Gibt die mit dem Frame verbundenen Metadaten zurück.
Dieser Codeausschnitt zeigt einen Handler für das rtctransform
-Ereignis in einem Worker
, der einen TransformStream
implementiert und kodierte Frames von event.transformer.readable
zu event.transformer.writable
leitet (event.transformer
ist ein RTCRtpScriptTransformer
, das Gegenstück auf der Worker-Seite von RTCRtpScriptTransform
).
Wenn der Transformer in einen Audio-Stream eingesetzt wird, wird die transform()
-Methode aufgerufen mit einem RTCEncodedAudioFrame
, wann immer ein neuer Frame in event.transformer.readable
eingereiht wird. Die transform()
-Methode zeigt, wie dies gelesen, mithilfe einer fiktiven Verschlüsselungsfunktion modifiziert und dann im Controller eingereiht werden könnte (dies leitet es letztlich durch zu event.transformer.writable
und dann zurück in die WebRTC-Pipeline).
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);
// Encrypt frame bytes using the encryptFunction() method (not shown)
for (let i = 0; i < encodedFrame.data.byteLength; ++i) {
const encryptedByte = encryptFunction(~view.getInt8(i));
newView.setInt8(i, encryptedByte);
}
encodedFrame.data = newData;
controller.enqueue(encodedFrame);
},
});
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
Beachten Sie, dass vollständigere Beispiele in Using WebRTC Encoded Transforms bereitgestellt werden.
Spezifikationen Browser-Kompatibilität Siehe auch MDN-Feedback-Box War diese Ãbersetzung hilfreich?Diese Seite wurde automatisch aus dem Englischen übersetzt.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4