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ó type là media-source và kind là audio.
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
audioLevelExperimental Optional-
Một số đại diện cho mức âm thanh của nguồn media.
totalAudioEnergyExperimental 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ê.
totalSamplesDurationExperimental 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ả RTCAudioSourceStats và RTCVideoSourceStats:
trackIdentifier-
Một chuỗi chứa giá trị
idcủaMediaStreamTrackliê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
DOMHighResTimeStampcho 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ủaRTCAudioSourceStatshoặcRTCVideoSourceStats.
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:
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:
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:
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.
// 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> |