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 des MediaStreamTrack 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 immer audio.

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 entweder RTCAudioSourceStats oder RTCVideoSourceStats 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:

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

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:

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

Das durchschnittliche Audiolevel 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 durchlaufen können, das von RTCRtpSender.getStats() zurückgegeben wird, um die Audiosourcenstatistiken zu erhalten und dann das audioLevel zu extrahieren.

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
media-source stats
audioLevel in 'media-source' stats
Experimental
frames in 'media-source' stats for video
framesPerSecond in 'media-source' stats for video
height in 'media-source' stats for video
id in 'media-source' stats
kind in 'media-source' stats
timestamp in 'media-source' stats
totalAudioEnergy in 'media-source' stats
Experimental
totalSamplesDuration in 'media-source' stats
Experimental
trackIdentifier in 'media-source' stats
type in 'media-source' stats
width in 'media-source' stats for video

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.