RTCAudioSourceStats

**RTCAudioSourceStats** 字典是 WebRTC API 的一部分,它提供有关音频轨道(MediaStreamTrack)的统计信息,该音频轨道附加到一个或多个发送器(RTCRtpSender)。

可以通过迭代 RTCStatsReport 来获取这些统计信息,该统计信息由 RTCRtpSender.getStats()RTCPeerConnection.getStats() 返回,直到找到一个 typemedia-sourcekindaudio 的报告。

**注意:**有关远程来源轨道(正在接收的轨道)的音频信息,请参见 RTCInboundRtpStreamStats

实例属性

audioLevel 实验性 可选

一个表示媒体源音频级别的数字。

totalAudioEnergy 实验性 可选

一个表示媒体源在统计对象生命周期内的总音频能量的数字。

totalSamplesDuration 实验性 可选

一个表示媒体源在统计对象生命周期内产生的所有样本的总持续时间的数字。

常见的媒体源属性

以下属性存在于 RTCAudioSourceStatsRTCVideoSourceStats 中。

trackIdentifier

一个包含与音频源关联的 MediaStreamTrackid 值的字符串。

kind

一个字符串,指示该对象是否表示视频源或媒体源的统计信息。对于 RTCAudioSourceStats,这将始终为 audio

常见的实例属性

以下属性是所有统计对象共有的。

id

一个唯一标识正在监控以生成此组统计信息的对象的字符串。

timestamp

一个 DOMHighResTimeStamp 对象,指示为此统计对象获取样本的时间。

type

一个值为 "media-source" 的字符串,指示该对象是 RTCAudioSourceStatsRTCVideoSourceStats 的实例。

描述

该接口提供有关附加到一个或多个发送器的音频媒体源的统计信息。信息包括当前音频级别,该级别是在短时间(实现依赖)内平均得到的。

统计信息还包括在特定时间戳处的累计总能量和总样本持续时间。总计可用于确定统计对象生命周期内的平均音频级别。可以使用以下公式计算与 audioLevel 相同单位的均方根 (RMS) 值

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

还可以使用累计总计来计算任意时间段内的平均音频级别。

统计对象的总音频能量通过将每个样本的能量加起来在统计对象生命周期内累计,而总持续时间通过将每个样本的持续时间加起来累计。每个样本的能量使用以下公式确定,其中 sample_level 是样本的级别,max_level 是可编码的最高强度值,duration 是样本的持续时间(以秒为单位)。

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

可以使用以下公式计算两次不同的 getStats() 调用之间的平均音频级别,无论持续时间如何

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

示例

此示例演示了如何迭代从 RTCRtpSender.getStats() 返回的统计对象以获取音频源统计信息,然后提取 audioLevel

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;

规范

规范
WebRTC 统计 API 的标识符
# dom-rtcaudiosourcestats

浏览器兼容性

BCD 表格仅在浏览器中加载