RTCEncodedAudioFrame: getMetadata() Methode
Hinweis: Dieses Feature ist verfügbar in Dedicated Web Workers.
Die getMetadata()
-Methode des RTCEncodedAudioFrame
-Interfaces gibt ein Objekt zurück, das die mit dem Frame verbundenen Metadaten enthält.
Dies umfasst Informationen über den Frame, einschließlich der verwendeten Audio-Codierung, der Synchronisationsquelle und der beitragenden Quellen sowie der Sequenznummer (bei eingehenden Frames).
Syntax
getMetadata()
Parameter
Keine.
Rückgabewert
Ein Objekt mit den folgenden Eigenschaften:
synchronizationSource
-
Ein positiver ganzzahliger Wert, der die Synchronisationsquelle ("ssrc") des Stroms von RTP-Paketen angibt, die durch diesen Frame beschrieben werden. Eine Quelle könnte beispielsweise ein Mikrofon oder eine Mixer-Anwendung sein, 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 auf dieselbe Quelle verweisen.
payloadType
-
Ein positiver ganzzahliger Wert im Bereich von 0 bis 127, der das Format der RTP-Nutzlast beschreibt. Die Zuordnungen von Werten zu Formaten sind in RFC3550 definiert und genauer in Abschnitt 6: Definitionen der Nutzlasttypen von RFC3551.
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 Rekonstruieren der ursprünglichen Sendereihenfolge von Frames verwendet werden kann. Dies ist eine Zahl zwischen 0 und 32767. Beachten Sie, dass, obwohl die Zahlen beim Senden sequenziell zugewiesen werden, sie bei 32767 überlaufen und wieder bei 0 beginnen. Daher müssen Sie zur Vergleichung zweier Frame-Sequenznummern, um zu bestimmen, ob eine als nach einer anderen angenommen wird, Seriennummern-Arithmetik verwenden.
Beispiele
Diese WebRTC Encoded Transform-Implementierung zeigt, wie Sie in einer transform()
-Funktion möglicherweise die Frame-Metadaten abrufen und protokollieren können.
addEventListener("rtctransform", (event) => {
const async 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 es nur eine Quelle gibt, und keine sequenceNumber
, da dies ein ausgehender Frame ist.
{
"payloadType": 109,
"synchronizationSource": 1876443470
}
Spezifikationen
Specification |
---|
WebRTC Encoded Transform # dom-rtcencodedaudioframe-getmetadata |
Browser-Kompatibilität
BCD tables only load in the browser