在Chrome中停止第二个webrtc流会中断所有webrtc流

log*_*lic 5 javascript google-chrome webrtc

如果我在Chrome 55中打开两个单独的WebRTC本地视频流,并且我停止并启动第二个流三次,则第一个流中断(此后不再打开流).

https://jsfiddle.net/kqjmt7a0/1/

要轻松复制,请在Chrome 55中运行上面的小提琴,然后单击"重新启动vid2"三次.第三次单击它时,您会注意到:

  • 第一个视频帧(点击未触及!)冻结
  • 第二个视频帧不再播放
  • 没有错误(getUserMedia()返回一个看起来很好的新本地流,除了它不起作用)

具体来说,调用MediaStreamTrack :: stop()会搞乱Chrome(最终).注释掉以下内容可以解决问题:

  var tracks = stream.getTracks();
  for(var i = 0; i < tracks.length; ++i) {
    tracks[i].stop();
  }
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么,或者这只是一个Chrome错误?

笔记:

  • 这只是为了在Chrome中正常工作
  • 这在Firefox中运行得很好
  • 在Chrome 55.0.2883.87(Mac和Windows)中重新编辑

更新:

在进一步解决这个问题后,我更确信它只是一个Chrome bug.我输入了以下内容:

https://bugs.chromium.org/p/chromium/issues/detail?id=674965

我仍然希望得到关于我的代码是否有任何问题的反馈,这些代码可能会让问题变得棘手.