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

View in English Always switch to English

RTCAudioSourceStats

Baseline Weitgehend verfügbar *

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Mai 2023 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Das RTCAudioSourceStats-Wörterbuch des WebRTC API liefert Statistik-Informationen über eine Audiostrecke (MediaStreamTrack), die an einen oder mehrere Sender (RTCRtpSender) angeschlossen ist.

Diese Statistiken können durch Iteration des RTCStatsReport abgerufen werden, welches von RTCRtpSender.getStats() oder RTCPeerConnection.getStats() zurückgegeben wird, bis Sie einen Bericht mit dem type von media-source und einem kind von audio finden.

Hinweis: Für Audioinformationen über entfernte Quellenstrecken (die empfangen werden), siehe RTCInboundRtpStreamStats.

Instanz-Eigenschaften

audioLevel Optional

Eine Zahl, die den Audiopegel der Medienquelle darstellt.

totalAudioEnergy Optional

Eine Zahl, die die gesamte Audioenergie der Medienquelle über die Lebensdauer des Statistikobjekts darstellt.

totalSamplesDuration Optional

Eine Zahl, die die Gesamtdauer aller von der Medienquelle erzeugten Proben über die Lebensdauer des Statistikobjekts darstellt.

Allgemeine Eigenschaften der Medienquelle

Die folgenden Eigenschaften sind sowohl in RTCAudioSourceStats als auch in RTCVideoSourceStats vorhanden:

trackIdentifier

Ein String, der den id Wert des MediaStreamTrack enthält, der mit der Audioquelle verknüpft ist.

kind

Ein String, der angibt, ob dieses Objekt Statistiken für eine Videoquelle oder eine Medienquelle darstellt. Für ein RTCAudioSourceStats wird dies immer audio sein.

Allgemeine Instanz-Eigenschaften

Die folgenden Eigenschaften sind allen Statistikobjekten gemeinsam.

id

Ein String, der das Objekt eindeutig identifiziert, das überwacht wird, um diesen Satz von Statistiken zu erzeugen.

timestamp

Ein DOMHighResTimeStamp-Objekt, das die Zeit angibt, zu der die Probe für dieses Statistikobjekt entnommen wurde.

type

Ein String mit dem Wert "media-source", der anzeigt, dass das Objekt eine Instanz von RTCAudioSourceStats oder RTCVideoSourceStats ist.

Beschreibung

Das Interface liefert Statistiken über eine Audio-Medienquelle, die an einen oder mehrere Sender angeschlossen ist. Die Informationen umfassen den aktuellen Audiopegel, der über eine kurze (implementierungsabhängige) Dauer gemittelt wird.

Die Statistiken umfassen auch die akkumulierte Gesamtenergie und die Gesamtdauer der Proben zu einem bestimmten Zeitpunkt. Die Summen können verwendet werden, um den durchschnittlichen Audiopegel über die Lebensdauer des Statistikobjekts zu bestimmen. Sie können einen quadratischen Mittelwert (RMS) in denselben Einheiten wie audioLevel mit der folgenden Formel berechnen:

totalAudioEnergytotalSamplesDuration\sqrt{\frac{totalAudioEnergy}{totalSamplesDuration}}

Sie können die akkumulierten Summen auch verwenden, um den durchschnittlichen Audiopegel über einen beliebigen Zeitraum zu berechnen.

Die Gesamtenergie des Statistikobjekts wird akkumuliert, indem die Energie jeder Probe über die Lebensdauer des Statistikobjekts addiert wird, während die Gesamtdauer durch Addition der Dauer jeder Probe akkumuliert wird. Die Energie jeder Probe wird mit der folgenden Formel bestimmt, wobei sample_level das Niveau der Probe ist, max_level der höchstintensive kodierbare Wert ist und duration die Dauer der Probe in Sekunden ist:

duration×(sample_levelmax_level)2duration \times⁢ \left(\left(\right. \frac{sample{\_}level}{max{\_}level} \left.\right)\right)^{2}

Der durchschnittliche Audiopegel zwischen zwei verschiedenen getStats()-Aufrufen, über jede beliebige Dauer, kann mit der folgenden Gleichung berechnet werden:

totalAudioEnergy2-totalAudioEnergy1totalSamplesDuration2-totalSamplesDuration1\sqrt{\frac{\left(totalAudioEnergy\right)_{2} - \left(totalAudioEnergy\right)_{1}}{\left(totalSamplesDuration\right)_{2} - \left(totalSamplesDuration\right)_{1}}}

Beispiele

Dieses Beispiel zeigt, wie Sie das Statistikobjekt, das von RTCRtpSender.getStats() zurückgegeben wird, durchlaufen, um die Audiostatistiken der Quelle zu erhalten und dann den audioLevel extrahieren.

js
// where sender is an RTCRtpSender
const stats = await sender.getStats();
let audioSourceStats = null;

for (const report of stats.values()) {
  if (report.type === "media-source" && report.kind === "audio") {
    audioSourceStats = report;
    break;
  }
}

const audioLevel = audioSourceStats?.audioLevel;

Spezifikationen

Spezifikation
Identifiers for WebRTC's Statistics API
# dom-rtcaudiosourcestats

Browser-Kompatibilität