Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
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, wird audioLevel 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. Die synchronizationSource würde die ssrc der Anwendung enthalten, während contributingSources 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.

js
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.

json
{
  "payloadType": 109,
  "synchronizationSource": 1876443470
}

Spezifikationen

Specification
WebRTC Encoded Transform
# dom-rtcencodedaudioframe-getmetadata

Browser-Kompatibilität

Siehe auch