WebRTC replaceTrack, getStats не возвращает audioInputLevel - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть поток WebRTC, который отправляет аудио / видео, я отображаю громкость в виджете измерителя, который получен из вызова getStats на peerConnection.

getStats(function (stats) {
  var results = stats.result()
  for (let i=0; i < results.length; i++) {
    var res = results[i]
    if (res.type == 'ssrc') {
      volume = parseInt(res.stat('audioInputLevel'))
    }
  }
})

Это работает нормальнопроблема заключается в том, что когда я запускаю replaceTrack для обновления потоков аудио / видео, вышеприведенное getStats возвращает 0 для уровня звука.

navigator.mediaDevices.getUserMedia(media)
  .then(stream => {
    const tracks = stream.getTracks()

    peerConnection.getSenders()
      .forEach(sender => {
        const newTrack = tracks.find(track => track.kind === sender.track.kind)
        sender.replaceTrack(newTrack)
      })
  })

Локальный поток get обновляется, удаленный пользователь получает обновления иаудио / видео работает.Но getStats больше не возвращает audioInputLevel.

Может ли кто-нибудь помочь мне понять, почему?Или какое исправление может быть.

Спасибо

1 Ответ

0 голосов
/ 27 февраля 2019

audioLevel сломан в spec-stats, см. https://bugs.chromium.org/p/chromium/issues/detail?id=920630#c16 и связанные ошибки.

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