我正在使用Android的WebRTC。并成功创建并建立会议。使用单个MediaStream和几个PeerConnection。

现在,我想找到一种更好的方法,其中之一是中继连接。我的问题是,如Chromium Report所述的板条箱继电器。我应该做同样的事情,但是有几个问题。因此,让我们开始吧。


建立成功的对等连接。 (A-> B)
使用另一个对等连接(B-> C)中继远程媒体流。
中继的媒体流(A->-> C)应该在最终端点上播放。


因此,对于用户B,我们应该从用户A的PeerConnection获取远程流,并将流添加到用户C的PeerConnection。以及它如何使用Java库实现?

// Local Media Stream, just as example for this question
// Local stream of current User B
MediaStream mediaStream = new MediaStream(...);

PeerConnection peerA = new PeerConnection(...);
PeerConnection peerC = new PeerConnection(...);

peerA.addStream(mediaStream);
peerB.addStream(mediaStream);

// Now this User (User B) can here User A and B
// Connection successful establish.

// Here is question, how I can fetch remote
// MediaStream object from PeerConnection A?


如何从PeerConnection A获取远程MediaStream对象并将其添加到其他PeerConnection C?



我还尝试做的是从PeerConnection获取RTPSender和RTPReceiver。之后,我可以访问远程站点的MediaStreamTrack。但是我不能将此对象放到另一个PeerConnection中。

最佳答案

您将从通常从pc.onaddstream获取的流中获取该流,并将其馈送到一个视频元素,然后将其pc.addStream传输到一个新的对等连接。

WebRTC示例的an example涵盖了使用多个中继的方式。

08-26 09:49