2016-10-26 119 views
1

我正在研究WebRTC for Android。併成功創建並建立會議。使用單個MediaStream和幾個PeerConnection。WebRTC將遠程流添加到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等獲取遠程MediaStream對象,並將它們添加到其他PeerConnection等C 2


我也試着做,其從PeerConnection等獲取RTPSender和RTPReceiver。之後,我可以訪問遠程站點的MediaStreamTrack。但是我不能把這個對象放到另一個PeerConnection中。

+0

爲什麼你在同一臺機器上有兩個對等連接? IIRC,當媒體流被添加到會話時發生回調。 –

+1

請參閱https://webrtc.github.io/samples/src/content/peerconnection/multiple-relay/ - 我不明白問題所在。你將通常從'pc.onaddstream'獲得的流傳輸到視頻元素,而將'pc.addStream'轉換爲新的對等連接。 – jib

+0

@BenjaminTrent我需要幾個會議連接。我可以如何開始與新的呼叫者重新談判,而不需要新的呼叫者? – GensaGames

回答

2

您將通常從pc.onaddstream獲得的流傳輸到視頻元素,而將pc.addStream轉換爲新的對等連接。

WebRTC樣本有an example涵蓋了使用這樣的多個繼電器。