我对我有非常重要的问题。我在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);
});