Car*_*ros 6 camera device webrtc
我在尝试实时更换相机时遇到问题,它适用于本地视频,但远程人员无法看到新相机,仍然可以看到旧相机.我试图再次停止流和init,但仍然无法正常工作.这只是我的一些代码.我到处搜索,我找不到解决方案.有人可以帮我吗?
function init() {
getUserMedia(constraints, connect, fail);
}
$(".webcam-devices").on('change', function() {
var deviceID = this.value;
constraints.video = {
optional: [{
sourceId: deviceID
}]
};
stream.getTracks().forEach(function (track) { track.stop(); });
init();
});
Run Code Online (Sandbox Code Playgroud)
您需要实际更改您在PeerConnection中发送的曲目.在Firefox中,您可以使用RTPSender.replaceTrack(new_track);
更改而无需重新协商(现在将其添加到规范中).否则,您需要将新流/轨道添加到RTCPeerConnection,并删除旧流,然后处理onnegotiationneeded事件并重新协商
看看@ jib的小提琴之一:Jib的replaceTrack()小提琴:
function flip() {
flipped = 1 - flipped;
return pc1.getSenders()[0].replaceTrack(streams[flipped].getVideoTracks()[0])
.then(() => log("Flip! (notice change in dimensions & framerate!)"))
.catch(failed);
}
Run Code Online (Sandbox Code Playgroud)