【问题标题】:WebRTC Adding remote stream to PeerConnectionWebRTC 将远程流添加到 PeerConnection
【发布时间】:2016-10-26 15:22:46
【问题描述】:

我正在为 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 对象并将它们添加到其他 PeerConnection C?


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

【问题讨论】:

  • 为什么同一台机器上有两个对等连接? IIRC,将媒体流添加到会话时会发生回调。
  • webrtc.github.io/samples/src/content/peerconnection/… - 我不明白问题是什么。您将通常从 pc.onaddstream 获取的流获取到视频元素,然后将 pc.addStream 获取到新的对等连接。
  • @BenjaminTrent 我需要多个会议连接。如何在没有新呼叫者的情况下开始与新呼叫者重新谈判?
  • @jib 它唯一的音频会议,没有视频。所以看起来很简单,但在 Java 级别上,它们缺少很多动作函数。
  • @jib 你是对的。有接口,监听onStreamAdd。我只是浪费时间解决问题,因为不要认为这会如此 ez。万分感谢。请添加答案,我会投票!

标签: android webrtc multipeer-connectivity


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    相关资源
    最近更新 更多