RTCAudioSourceStats
Das RTCAudioSourceStats
-Wörterbuch der WebRTC API liefert Statistikinformationen über einen Audio-Track (MediaStreamTrack
), der an einen oder mehrere Sender (RTCRtpSender
) angehängt ist.
Diese Statistiken können erhalten werden, indem der RTCStatsReport
durchlaufen wird, 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 Audio-Informationen über Tracks, die aus der Ferne stammen (die empfangen werden), siehe RTCInboundRtpStreamStats
.
Instanz-Eigenschaften
audioLevel
Experimentell Optional-
Eine Zahl, die den Audiopegel der Medienquelle darstellt.
totalAudioEnergy
Experimentell Optional-
Eine Zahl, die die gesamte Audioenergie der Medienquelle über die Lebensdauer des Statistikobjekts darstellt.
totalSamplesDuration
Experimentell Optional-
Eine Zahl, die die Gesamtdauer aller von der Medienquelle erzeugten Samples über die Lebensdauer des Statistikobjekts darstellt.
Allgemeine Eigenschaften von Medienquellen
Die folgenden Eigenschaften sind sowohl in RTCAudioSourceStats
als auch in RTCVideoSourceStats
vorhanden:
trackIdentifier
-
Ein String, der den
id
-Wert desMediaStreamTrack
, der mit der Audioquelle verbunden ist, enthält. kind
-
Ein String, der angibt, ob dieses Objekt die Statistiken für eine Videoquelle oder eine Medienquelle darstellt. Für ein
RTCAudioSourceStats
ist dies immeraudio
.
Allgemeine Instanz-Eigenschaften
Die folgenden Eigenschaften sind bei allen Statistikobjekten üblich.
id
-
Ein String, der das Objekt, das überwacht wird, um diese Statistikmenge zu erzeugen, eindeutig identifiziert.
timestamp
-
Ein
DOMHighResTimeStamp
-Objekt, das den Zeitpunkt anzeigt, zu dem die Probe für dieses Statistikobjekt entnommen wurde. type
-
Ein String mit dem Wert
"media-source"
, der anzeigt, dass das Objekt eine Instanz von entwederRTCAudioSourceStats
oderRTCVideoSourceStats
ist.
Beschreibung
Das Interface liefert Statistiken über eine Audio-Medienquelle, die an einen oder mehrere Sender angehängt ist. Die Informationen umfassen den aktuellen Audiopegel, gemittelt über eine kurze (implementierungsabhängige) Dauer.
Die Statistiken umfassen auch die akkumulierte Gesamtenergie und die Gesamtsample-Dauer zu einem bestimmten Zeitpunkt.
Die Gesamtsummen können verwendet werden, um den durchschnittlichen Audiopegel über die Lebensdauer des Statistikobjekts zu bestimmen.
Sie können einen quadratischen Mittelwert (RMS) im selben Maßeinheit wie audioLevel
mit der folgenden Formel berechnen:
Sie können auch die akkumulierten Gesamtsummen verwenden, um den durchschnittlichen Audiopegel über einen beliebigen Zeitraum zu berechnen.
Die gesamte Audioenergie des Statistikobjekts wird akkumuliert, indem die Energie jedes Samples über die Lebensdauer des Statistikobjekts hinzugefügt wird, während die Gesamtdauer akkumuliert wird, indem die Dauer jedes Samples hinzugefügt wird.
Die Energie jedes Samples wird mit der folgenden Formel bestimmt, wobei sample_level
der Pegel des Samples, max_level
der höchstintensive kodierbare Wert und duration
die Dauer des Samples in Sekunden ist:
Der durchschnittliche Audiopegel zwischen zwei verschiedenen getStats()
-Aufrufen über einen beliebigen Zeitraum kann mit der folgenden Gleichung berechnet werden:
Beispiele
Dieses Beispiel zeigt, wie Sie das Statistikobjekt, das von RTCRtpSender.getStats()
zurückgegeben wird, durchlaufen könnten, um die Audiquellenstatistiken zu erhalten und dann den audioLevel
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 |