我有一个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
。
谁能帮助我理解原因?还是可以解决的问题。
谢谢
答案 0 :(得分:1)
audioLevel的规格统计信息已损坏,请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=920630#c16和链接的错误。