RTCEncodedAudioFrame: getMetadata()-Methode
Baseline
2023
Newly available
Since August 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Die getMetadata()
-Methode des RTCEncodedAudioFrame
-Interfaces gibt ein Objekt zurück, das die mit dem Frame verknüpften Metadaten enthält.
Dies umfasst Informationen über den Frame, einschließlich der verwendeten Audio-Codierung, der Synchronisationsquelle und der beitragenden Quellen sowie der Sequenznummer (für eingehende Frames).
Syntax
getMetadata()
Parameter
Keine.
Rückgabewert
Ein Objekt mit den folgenden Eigenschaften:
audioLevel
-
Eine Zahl, die den Audiopegel dieses Frames darstellt. Der Wert liegt zwischen 0 und 1 inklusive (linear), wobei 1,0 0 dBov (Dezibel relativ zur Vollaussteuerung) darstellt, 0 Stille und 0,5 eine Änderung des Schalldruckpegels um ca. 6 dB SPL von 0 dBov. Der Wert wird aus dem in RFC6464 spezifizierten Bereich von -127 bis 0 über die Gleichung
10^(-rfc_level/20)
umgerechnet. Wenn die RFC6464-Header-Erweiterung in den empfangenen Paketen des Frames nicht vorhanden ist, wirdaudioLevel
undefined
sein. synchronizationSource
-
Ein positiver ganzzahliger Wert, der die Synchronisationsquelle ("ssrc") des RTP-Paketstroms angibt, der von diesem Frame beschrieben wird. Eine Quelle könnte so etwas wie ein Mikrofon sein oder eine Mix-Anwendung, die mehrere Quellen kombiniert. Alle Pakete von derselben Quelle teilen dieselbe Zeitquelle und Sequenzraum und können daher relativ zueinander geordnet werden. Beachten Sie, dass zwei Frames mit demselben Wert dieselbe Quelle referenzieren.
payloadType
-
Ein positiver ganzzahliger Wert im Bereich von 0 bis 127, der das Format der RTP-Nutzlast beschreibt. Die Zuordnungen der Werte zu Formaten sind in RFC3550 und genauer in Abschnitt 6: Definitionen des Nutzlasttyps von RFC3551 definiert.
contributingSources
-
Ein
Array
von Quellen (ssrc), die zum Frame beigetragen haben. Betrachten Sie den Fall einer Konferenzanwendung, die Audio von mehreren Benutzern kombiniert. DiesynchronizationSource
würde die ssrc der Anwendung enthalten, währendcontributingSources
die ssrc-Werte aller einzelnen Audioquellen enthalten würde. sequenceNumber
-
Die Sequenznummer eines eingehenden Audio-Frames (nicht für ausgehende Frames verwendet), die zum Wiederherstellen der ursprünglichen Sende-Reihenfolge von Frames verwendet werden kann. Dies ist eine Zahl zwischen 0 und 32767. Beachten Sie, dass während die Zahlen bei der Sendung sequentiell zugewiesen werden, sie bei 32767 überlaufen und wieder bei 0 beginnen. Daher müssen Sie serielle Nummernarithmetik verwenden, um zwei Frame-Sequenznummern zu vergleichen, um festzustellen, ob eine als nach der anderen angenommen wird.
Beispiele
Dieses Beispiel einer WebRTC-codierten Transformation Implementierung zeigt, wie Sie die Frame-Metadaten in einer transform()
-Funktion erhalten und protokollieren können.
addEventListener("rtctransform", (event) => {
const transform = new TransformStream({
async transform(encodedFrame, controller) {
// Get the metadata and log
const frameMetaData = encodedFrame.getMetadata();
console.log(frameMetaData);
// Enqueue the frame without modifying
controller.enqueue(encodedFrame);
},
});
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
Das resultierende Objekt von einem lokalen Mikrofon könnte wie das unten gezeigte aussehen.
Beachten Sie, dass es keine beitragenden Quellen gibt, da nur eine Quelle vorhanden ist, und keine sequenceNumber
, da dies ein ausgehender Frame ist.
{
"payloadType": 109,
"synchronizationSource": 1876443470
}
Spezifikationen
Specification |
---|
WebRTC Encoded Transform> # dom-rtcencodedaudioframe-getmetadata> |
Browser-Kompatibilität
Loading…