RTCAudioSourceStats

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since May 2023.

* Some parts of this feature may have varying levels of support.

Từ điển RTCAudioSourceStats của WebRTC API cung cấp thông tin thống kê về một audio track (MediaStreamTrack) được gắn với một hoặc nhiều bộ gửi (RTCRtpSender).

Thông tin thống kê này có thể thu được bằng cách duyệt qua RTCStatsReport được trả về từ RTCRtpSender.getStats() hoặc RTCPeerConnection.getStats() cho đến khi tìm thấy một báo cáo có typemedia-sourcekindaudio.

Note: Để biết thông tin âm thanh về các track được lấy từ xa (đang được nhận), xem RTCInboundRtpStreamStats.

Thuộc tính phiên bản

audioLevel Experimental Optional

Một số đại diện cho mức âm thanh của nguồn media.

totalAudioEnergy Experimental Optional

Một số đại diện cho tổng năng lượng âm thanh của nguồn media trong suốt vòng đời của đối tượng thống kê.

totalSamplesDuration Experimental Optional

Một số đại diện cho tổng thời lượng của tất cả các mẫu được tạo ra bởi nguồn media trong suốt vòng đời của đối tượng thống kê.

Thuộc tính media-source chung

Các thuộc tính sau có trong cả RTCAudioSourceStatsRTCVideoSourceStats:

trackIdentifier

Một chuỗi chứa giá trị id của MediaStreamTrack liên quan đến nguồn âm thanh.

kind

Một chuỗi cho biết đối tượng này đại diện cho thống kê của nguồn video hay nguồn media. Với RTCAudioSourceStats, giá trị này luôn là audio.

Thuộc tính phiên bản chung

Các thuộc tính sau phổ biến với tất cả các đối tượng thống kê.

id

Một chuỗi xác định duy nhất đối tượng đang được theo dõi để tạo ra bộ thống kê này.

timestamp

Một đối tượng DOMHighResTimeStamp cho biết thời điểm mẫu này được lấy cho đối tượng thống kê này.

type

Một chuỗi với giá trị "media-source", cho biết đối tượng là một thực thể của RTCAudioSourceStats hoặc RTCVideoSourceStats.

Mô tả

Giao diện cung cấp thống kê về nguồn media âm thanh được gắn với một hoặc nhiều bộ gửi. Thông tin bao gồm mức âm thanh hiện tại, được tính trung bình trong một khoảng thời gian ngắn (phụ thuộc vào triển khai).

Thống kê cũng bao gồm tổng năng lượng và tổng thời lượng mẫu tích lũy tại một dấu thời gian cụ thể. Các tổng số này có thể được sử dụng để xác định mức âm thanh trung bình trong suốt vòng đời của đối tượng thống kê. Bạn có thể tính giá trị căn bậc hai trung bình (RMS) theo cùng đơn vị như audioLevel bằng công thức sau:

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

Bạn cũng có thể sử dụng các tổng số tích lũy để tính mức âm thanh trung bình trong khoảng thời gian tùy ý.

Tổng năng lượng âm thanh của đối tượng thống kê được tích lũy bằng cách cộng năng lượng của mỗi mẫu trong suốt vòng đời của đối tượng thống kê, trong khi tổng thời lượng được tích lũy bằng cách cộng thời lượng của mỗi mẫu. Năng lượng của mỗi mẫu được xác định bằng công thức sau, trong đó sample_level là mức của mẫu, max_level là giá trị mã hóa cao nhất và duration là thời lượng của mẫu tính bằng giây:

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

Mức âm thanh trung bình giữa bất kỳ hai lần gọi getStats() khác nhau, trong bất kỳ khoảng thời gian nào, có thể được tính bằng phương trình sau:

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

Ví dụ

Ví dụ này cho thấy cách duyệt qua đối tượng thống kê được trả về từ RTCRtpSender.getStats() để lấy thống kê nguồn âm thanh và trích xuất 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;

Thông số kỹ thuật

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

Tương thích trình duyệt