如何在没有自流的情况下打电话

时间:2017-09-12 20:41:07

标签: javascript webrtc peerjs

我对我有非常重要的问题。我在github和堆栈上寻找答案,但我没有找到任何解决方案。

所以问题是,如何在不提供流的情况下呼叫对等体。

想象一下这种情况。 Peer1是一个“主机”对等体,他有id,并将其发送给Peer2“client”。主机想要创建呼叫,所有客户端都可以看到主机流。客户端只想查看来自主机的流,但不发送自流。

为什么呢?因为他们希望保持流的私有性,并且如果有许多客户端,主机将被迫从所有客户端下载所有数据 - 这将是无效的。

那怎么办呢?对此有什么解决方案吗?

主机代码:

this.peer.on('call', (call) => {
  this.navig.getUserMedia({video: true, audio: true}, (stream) => {
    call.answer(stream);
    call.on('stream', (remotestream) => {
      this.videoElement.nativeElement.src = URL.createObjectURL(remotestream);
      this.videoElement.nativeElement.play();
    });
  }, function (err) {
    console.log('Failed to get stream', err);
  });
});

客户端:

 navig.getUserMedia({video: true, audio: true}, (stream) => {
  var call = this.peer.call(this.idToJoin, stream);
  call.on('stream', (remotestream) => {
    this.video.nativeElement.src = URL.createObjectURL(remotestream);
    this.video.nativeElement.play();
  })
}, function (err) {
  console.log('Failed to get stream', err);
});

0 个答案:

没有答案