WebRTC "audioOutputLevel" означает среднее значение - PullRequest
0 голосов
/ 06 марта 2019

Я прочитал документ об уровне звука на сайте 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("-----------------------------------------")
                    }

                })
            }

1 Ответ

1 голос
/ 06 марта 2019

Похоже, вы используете "устаревший" API getStats, т.е. вы вызываете

pc.getStats(function(res) {
  // show result
})

, в котором это называется aduioOutputLevel.Если вы используете

pc.getStats().then(function(stats) {
  // show result
})

, он должен отображаться как audioLevel.

https://webrtc.github.io/samples/src/content/peerconnection/constraints/ показывает полный пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...