我在Firefox中测试我的WebRTC应用程序,看起来Firefox没有收集ICE候选人,除非并且直到Firefox窗口成为焦点?!在同一台机器上使用两个独立的浏览器窗口时,其中一个显然始终不是最前面的窗口。日志告诉我,Firefox停止在它应该开始收集ICE候选者的位置,直到我明确地点击窗口使其成为焦点,此时开始候选人收集并且在建立连接之后不久。我可以在流程开始后随时切换窗口,它会成功完成;但窗口显然必须在过程开始时关注。
在Chrome上没有这样的行为,它总是会收集任何州的候选人。
这是一种已知行为吗?这有什么理由,还是一个错误?
OS X El Cap上的Firefox 44.0.2
答案 0 :(得分:3)
Firefox中的隐藏标签或窗口无法打开相机。我个人觉得有点安全。
即使您已选择"始终共享",在您对焦窗口之前,相机也不会激活。
从评论中可以看出这就是你的情况。
相比之下,this fiddle可以从两个标签中正常工作,因为只有用户按下按钮的页面(发送方)才能访问相机。
This code section intentionally left blank.
答案 1 :(得分:2)
没关系,它不是ICE候选者,除非Firefox是活动窗口,否则getUserMedia
会阻止它。我的代码的异步性质使它不那么明显。这种行为显然是按设计进行的,并在此处进行了描述:https://bugzilla.mozilla.org/show_bug.cgi?id=1195654。