Я прочитал документ об уровне звука на сайте API webrtc stats:
Идентификаторы для API статистики WebRTC
На этом сайте они описывают значение AudioLevel между 0..1.
Когда я получаю статистику аудио потока и печатаю на консоль. Результат ниже:
▿ 29 key/value pairs
▿ (2 elements)
- key: "ssrc"
- value: "2726297394"
▿ (2 elements)
- key: "googDecodingPLC"
- value: "18"
▿ (2 elements)
- key: "googSecondaryDecodedRate"
- value: "0"
▿ (2 elements)
- key: "googDecodingCTN"
- value: "911"
▿ (2 elements)
- key: "googJitterReceived"
- value: "5"
▿ (2 elements)
- key: "transportId"
- value: "Channel-audio-1"
▿ (2 elements)
- key: "googExpandRate"
- value: "0.0194092"
▿ (2 elements)
- key: "packetsReceived"
- value: "439"
▿ (2 elements)
- key: "audioOutputLevel"
- value: "28025"
▿ (2 elements)
- key: "googDecodingMuted"
- value: "43"
▿ (2 elements)
- key: "googDecodingPLCCNG"
- value: "44"
▿ (2 elements)
- key: "totalSamplesDuration"
- value: "9.11"
▿ (2 elements)
- key: "googPreemptiveExpandRate"
- value: "0.0101318"
▿ (2 elements)
- key: "googSpeechExpandRate"
- value: "0.0194092"
▿ (2 elements)
- key: "packetsLost"
- value: "1"
▿ (2 elements)
- key: "googPreferredJitterBufferMs"
- value: "120"
▿ (2 elements)
- key: "googDecodingCTSG"
- value: "0"
▿ (2 elements)
- key: "googCurrentDelayMs"
- value: "158"
▿ (2 elements)
- key: "googCaptureStartNtpTimeMs"
- value: "0"
▿ (2 elements)
- key: "mediaType"
- value: "audio"
▿ (2 elements)
- key: "bytesReceived"
- value: "41628"
▿ (2 elements)
- key: "googCodecName"
- value: "opus"
▿ (2 elements)
- key: "googDecodingCNG"
- value: "0"
▿ (2 elements)
- key: "totalAudioEnergy"
- value: "3.47756"
▿ (2 elements)
- key: "googJitterBufferMs"
- value: "120"
▿ (2 elements)
- key: "googSecondaryDiscardedRate"
- value: "0"
▿ (2 elements)
- key: "googAccelerateRate"
- value: "0.00354004"
▿ (2 elements)
- key: "googDecodingNormal"
- value: "849"
▿ (2 elements)
- key: "googTrackId"
- value: "OCVMXiq8"
Я не нашел ключ "audioLevel", как описано в документе, но нашел "audioOutputLevel".
Затем, что означает это значение или оно может преобразоваться в значение «audioLevel», как указано выше
UPDATE
Вот пример кода, который я использую, чтобы получить статистику
for receive in (self.client!.peerConnection!.receivers) {
self.client!.peerConnection!.stats(for: receive.track!, statsOutputLevel: .debug, completionHandler: { reports in
for report in reports {
print("-------- report id \(report.reportId) in time \(Date().timeIntervalSince1970)")
dump(report.values)
print("-----------------------------------------")
}
})
}