RTCAudioSourceStats
Das RTCAudioSourceStats
-Wörterbuch der WebRTC API liefert Statistikinformationen über einen Audiotrack (MediaStreamTrack
), der an einen oder mehrere Sender (RTCRtpSender
) angehängt ist.
Diese Statistiken können erhalten werden, indem Sie den RTCStatsReport
durchlaufen, der 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 entfernt bezogene Tracks (die empfangen werden), siehe RTCInboundRtpStreamStats
.
Instanz-Eigenschaften
audioLevel
Experimentell Optional-
Eine Zahl, die das Audiolevel der Medienquelle repräsentiert.
totalAudioEnergy
Experimentell Optional-
Eine Zahl, die die gesamte Audioenergie der Medienquelle über die Lebensdauer des Statistikobjekts repräsentiert.
totalSamplesDuration
Experimentell Optional-
Eine Zahl, die die Gesamtdauer aller von der Medienquelle produzierten Proben über die Lebensdauer des Statistikobjekts repräsentiert.
Allgemeine Eigenschaften der Medienquelle
Die folgenden Eigenschaften sind sowohl in RTCAudioSourceStats
als auch in RTCVideoSourceStats
vorhanden:
trackIdentifier
-
Ein String, der den
id
Wert desMediaStreamTrack
enthält, das mit der Audioquelle assoziiert ist. kind
-
Ein String, der angibt, ob dieses Objekt Statistiken für eine Videoquelle oder eine Medienquelle darstellt. Für ein
RTCAudioSourceStats
ist dies immeraudio
.
Allgemeine Instanz-Eigenschaften
Die folgenden Eigenschaften sind allen Statistikobjekten gemeinsam.
id
-
Ein String, der das Objekt, das überwacht wird, eindeutig identifiziert, um diesen Satz von Statistiken zu erstellen.
timestamp
-
Ein
DOMHighResTimeStamp
-Objekt, das den Zeitpunkt angibt, zu dem die Stichprobe für dieses Statistikobjekt entnommen wurde. type
-
Ein String mit dem Wert
"media-source"
, der angibt, dass das Objekt eine Instanz von entwederRTCAudioSourceStats
oderRTCVideoSourceStats
ist.
Beschreibung
Das Interface liefert Statistiken über eine Audiomedienquelle, die an einen oder mehrere Sender angehängt ist. Die Informationen umfassen den aktuellen Audiolevel, gemittelt über eine kurze (implementierungsabhängige) Dauer.
Die Statistiken umfassen auch die akkumulierte Gesamtenergie und Gesamtdauer der Proben zu einem bestimmten Zeitpunkt.
Die Gesamtwerte können verwendet werden, um den durchschnittlichen Audiolevel über die Lebensdauer des Statistikobjekts zu bestimmen.
Sie können einen quadratischen Mittelwert (RMS) in den gleichen Einheiten wie audioLevel
mit der folgenden Formel berechnen:
Sie können die akkumulierten Gesamtwerte auch verwenden, um den durchschnittlichen Audiolevel über einen beliebigen Zeitraum zu berechnen.
Die gesamte Audioenergie des Statistikobjekts wird akkumuliert, indem die Energie jeder Probe über die Lebensdauer des Statistikobjekts addiert wird, während die Gesamtdauer akkumuliert wird, indem die Dauer jeder Probe addiert wird.
Die Energie jeder Probe wird mit der folgenden Formel bestimmt, wobei sample_level
das Level der Probe, max_level
der höchstintensitierbare Wert und duration
die Dauer der Probe in Sekunden ist:
Das durchschnittliche Audiolevel zwischen zwei verschiedenen getStats()
-Aufrufen, über jede beliebige Dauer, kann mit der folgenden Gleichung berechnet werden:
Beispiele
Dieses Beispiel zeigt, wie Sie das Statistikobjekt durchlaufen können, das von RTCRtpSender.getStats()
zurückgegeben wird, um die Audiosourcenstatistiken zu erhalten und dann das audioLevel
zu extrahieren.
// where sender is an RTCRtpSender
const stats = await sender.getStats();
let audioSourceStats = null;
stats.forEach((report) => {
if (report.type === "media-source" && report.kind==="audio") {
audioSourceStats = report;
break;
}
});
const audioLevel = audioSourceStats?.audioLevel;
Spezifikationen
Specification |
---|
Identifiers for WebRTC's Statistics API # dom-rtcaudiosourcestats |
Browser-Kompatibilität
BCD tables only load in the browser