WebRTC replaceTrack,getStats不返回audioInputLevel

时间:2019-02-26 21:05:50

标签: webrtc

我有一个WebRTC流正在发送音频/视频,我在仪表小部件中显示音量,该仪表小部件是从peerConnection上的getStats调用中获取的。

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)
      })
  })

本地流得到更新,远程用户得到更新并且音频/视频正在工作。但是getStats不再返回audioInputLevel

谁能帮助我理解原因?还是可以解决的问题。

谢谢

1 个答案:

答案 0 :(得分:1)

audioLevel的规格统计信息已损坏,请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=920630#c16和链接的错误。