大约一个月前,Stackoverflow的一位合作伙伴帮我解决了一个大问题,比如在一次会议上更换了摄像头和麦克风。这个问题在以下链接中得到了回答:
Using WebRTC how to choose mic and camera?
更换摄像头和麦克风后,以前的媒体流仍处于活动状态。因此,会议中的其他人无法以某种方式接收到我的新流程。
如果有必要,我想知道如何重新协商这一新流程。
我在项目中用于webRTC实现的库是"simplewebRTC“,目前已不再使用。
我用来更改设备的代码完全基于我在上一个问题中实现的内容……
发布于 2019-03-29 08:02:45
我不知道simpleWebRTC,但在简单的WebRTC中,重新协商是没有必要的。
只需使用sender.replaceTrack()即可。它是异步的,所以同时切换摄像头和麦克风:
navigator.mediaDevices.getUserMedia(constraints)
.then(stream => {
video.srcObject = stream;
return Promise.all(stream.getTracks().map(track => {
const sender = pc.getSenders().find((s => s.track.kind == track.kind);
return sender.replaceTrack(track);
}));
})
.catch(err => console.log(err));这应该会立即使发送者切换到从新相机和麦克风发送媒体。另一边不会知道其中的区别。
https://stackoverflow.com/questions/55400158
复制相似问题