现在,由于设备枚举出现在chrome中,我知道我可以在"getUserMedia“协商期间选择一个设备。我还想知道我是否可以在通话过程中切换设备(将本地音轨排队并切换音轨,还是必须重新协商流)?我不确定这是仍然被阻止的东西,还是现在是“允许的”
我试着制作一个新的曲目,但我不知道如何在旅途中切换曲目。我知道这在以前是不可能的,但现在想知道这是否可能?
发布于 2015-03-13 08:38:33
在火狐中,您可以使用RTPSender对象调用replaceTrack()来动态替换曲目(无需重新协商)。这最终应该被其他浏览器作为规范的一部分来支持。
没有replaceTrack(),您可以删除旧的流,添加一个新的流,处理one,并让客户端处理流中的更改。
请参阅Mozilla源代码:https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender/replaceTrack中的replaceTrack()测试
发布于 2017-06-16 12:09:44
就连我也有同样的要求。我必须用MediaRecorder录制视频。为此,我使用具有音频和视频约束的navigator.getUserMedia。您可以通过从navigator.mediaDevices.enumerateDevices()获取可用的设备并将相应的设备附加到约束并使用新的约束再次调用navigator.getUserMedia来动态传递视频或音频轨道。执行此操作时需要注意的一点是,您必须使用track.stop()方法终止现有的磁道。
你可以在这里看到我的例子。
发布于 2013-08-12 18:25:44
当您想要更改为其他设备时,您是否尝试过调用getUserMedia()?
在媒体捕获和流规范中有一个applyConstraints()方法,它可以动态地更改约束,但它还没有实现:
dev.w3.org/2011/webrtc/editor/getusermedia.html#the-model-sources-sinks-constraints-and-states dev.w3.org/2011/webrtc/editor/getusermedia.html#methods-1
https://stackoverflow.com/questions/18165124
复制相似问题