我一直在我的应用程序中使用SimpleWebRTC一段时间。这是非常简单的设置和适用于简单的应用程序。但是,我需要能够禁用/启用视频,而不会影响我的应用中的音频,而这正是SimpleWebRTC不足的地方。搜索一些其他StackOverflow问题显示,这似乎被称为'重新谈判'。WebRTC逻辑流重新协商(启用/禁用视频)
显然直到最近(去年或两年?)浏览器没有公开MediaStreamTrack
s(https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack),这使得重新协商变得不可能。现在这显然是可能的,但我没有看到任何包装库做这件事。实际上,大多数流行的WebRTC库似乎都不再被维护。
有没有人与流重新协商工作,并指出我在正确的方向,要么实现它的图书馆,polyfill,或一些关于如何通过当前的WebRTC标准实现这一点的指导?我不介意摆脱一个图书馆,以支持准系统WebRTC,我只是不确定什么是始终如一地结束/启动连接的正确方式,因为实现在浏览器之间似乎仍然很挑剔。
可能重复的[如何在WebRTC MediaStream中添加跟踪](http://stackoverflow.com/questions/35504214/how-to-addtrack-in-mediastream-in-webrtc) – jib
此外,你有没有尝试过只是禁用视频?这会导致视频数据包停止发送,至少在Firefox中:https://jsfiddle.net/ec9ossmu/(小提琴需要Firefox,因为Chrome目前还不支持该规范的统计数据)。 – jib
@jib感谢,就小提琴而言,它与Chrome在Chrome中的解决方案具有相同的效果,视频有效暂停,但相机保持打开状态,使用户产生怀疑。至于你的第一个链接,你是对的,这在技术上是重复的,对不起我错过了。 Chrome的状态已经改变了,它现在部分支持轨道,特别是'addTrack'和'removeTrack',而不是'replaceTrack',正如Phillip指出的那样,我需要它。我可以将其标记为重复的,但由于对WebRTC的支持不断变化,我需要看看答案是否仍然有效,以及现在是否有更清晰的方法。 –