WebRTC 添加远程流到 PeerConnection

WebRTC Adding remote stream to PeerConnection

我正在为 Android 开发 WebRTC。并成功创建和建立会议。使用单个 MediaStream 和多个 PeerConnection。

现在想找一个更好的方法,其中之一就是中继连接。我的问题是,按照 Chromium Report 中的描述装箱继电器。我应该做同样的事情,但有几个问题。那么让我们开始吧。

  1. 建立成功的对等连接。 (A -> B)
  2. 使用另一个对等连接(B -> C)中继远程媒体流。
  3. 中继媒体流 (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 objects 并将它们添加到另一个 PeerConnection C?


我也尝试过从 PeerConnection 获取 RTPSender 和 RTPReceiver。之后我可以访问远程站点的 MediaStreamTrack。但是我不能把这个 object 放到另一个 PeerConnection。

您将通常从 pc.onaddstream 获得的流传输到视频元素,而不是 pc.addStream 将其传输到新的对等连接。

WebRTC 示例 an example 涵盖了像这样使用多个中继。