使用WebRTC在视频会议之间交换相机

时间:2015-03-20 07:51:04

标签: html5 webrtc

在手机上进行视频通话时是否可以更换相机? 我可以使用MediaStreamTrack.getSources()获取可用的摄像头。 但是我可以在电话中换掉它们。

有关如何使用html和javascript在视频通话中进行交换的任何想法(我正在开发混合应用)。

另外:是否可以在没有任何插件的情况下使Safari(iOS)与webRTC兼容?

1 个答案:

答案 0 :(得分:0)

  

有关如何使用html和javascript在视频通话中进行交换的任何想法。

这样的事情应该适用于Chrome *:

function switchCamera() {
  // get new stream (different camera)
  getUserMedia(constraints, function(newStream){
    var oldStream = peerConnection.getLocalStreams()[0];

    // toggle streams
    peerConnection.removeStream(oldStream);
    peerConnection.addStream(newStream);

    // re-negotiate
    peerConnection.createOffer(function (offer) {
      peerConnection.setLocalDescription(offer);
      // sendOfferToPeers(offer);
    });
  }, function(e) {
    console.log(e);
  })
}


function gotOffer(offer) {
  peerConnection.setRemoteDescription(offer);
  peerConnection.createAnswer(function(answer) {
    peerConnection.setLocalDescription(answer);
    // sendAnswerToPeers(answer);
  });
}

function gotAnswer(answer) {
  peerConnection.setRemoteDescription(answer);
}

*你提到过关于移动设备的一些内容,所以你获取流的方式可能会有所不同。 此外,我没有测试此代码,API看起来不同,请查看here for the correct function calls createAnswer etc. 。但它的要点应该是一样的:

  1. 获取新流
  2. 更新peerConnection
  3. 通知同行(重新谈判)
  4.   

    另外:是否可以在没有任何插件的情况下使Safari(iOS)与webRTC兼容?

    没有。您可以拥有look here for updates.