繁体   English   中英

WebRTC - 实时更换设备/摄像机

[英]WebRTC - Change device/camera in realtime

我在尝试实时更换相机时遇到问题,它适用于本地视频,但远程人员无法看到新相机,仍然可以看到旧相机。 我试图再次停止流和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();
});

您需要实际更改您在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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM