【问题标题】:WebRTC - Change device/camera in realtimeWebRTC - 实时更改设备/相机
【发布时间】:2015-09-07 14:13:23
【问题描述】:

我在尝试实时更换摄像头时遇到问题,它适用于本地视频,但远程人看不到新摄像头,但仍能看到旧摄像头。我试图停止流并再次初始化,但仍然无法正常工作。这只是我的一些代码。 我到处搜索,但找不到解决方案。有人可以帮帮我吗?

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();
});

【问题讨论】:

  • 抱歉,我无法从您的代码中得知太多信息,您能否提供相关代码来说明您在何处更改远程对等点的流?

标签: camera webrtc device


【解决方案1】:

您需要实际更改您在 PeerConnection 中发送的曲目。在 Firefox 中,您可以使用 RTPSender.replaceTrack(new_track); 进行更改而无需重新协商(现在正在将其添加到规范中)。否则,需要将新的stream/track添加到RTCPeerConnection,去掉旧的,然后处理onnegotiationneeded事件并重新协商

查看@jib 的小提琴之一:Jib's replaceTrack() fiddle:

function flip() {
  flipped = 1 - flipped;
  return pc1.getSenders()[0].replaceTrack(streams[flipped].getVideoTracks()[0])
  .then(() => log("Flip! (notice change in dimensions & framerate!)"))
  .catch(failed);
}

【讨论】:

  • 嗨,swift WebRTC 有什么解决方案吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-30
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多