2013-03-05 26 views
0

我想將遠程流,並將其發送給其他同行,將遙控流是這樣的:如何附加遠程流並將其發送給另一個對等體?

firstPeer.onaddstream = function(remoteSteam) { 
    otherPeer.addStream(remoteStream); /* attaching remote stream */ 
}; 

但它不工作! (我無法在另一個瀏覽器中接收此流。)

誰能告訴我如何附加遠程流?如何發送遠程流到另一個同行?

謝謝!

+0

我也很好奇這個。 RTC是否允許服務器偵聽並記錄兩個對等設備之間的流? – 2013-03-06 00:58:38

回答

0

我測試了一個while ago。但是,如果連接了「遠程流」,則流不會流動。

我發現鉻創建提供的SDP時錯過了許多屬性,還提供SDP設置「recvonly 」來代替「SENDRECV」。

在最新的鉻金絲雀,你可以像這樣附加「遠程流」。

var newStream = new webkitMediaStream(remoteStream); 
peer2.addStream(newStream); 

或者以其他方式:

var newStream = new webkitMediaStream([remoteStream.getAudioTracks(),remoteStream.getVideoTracks()]); 
peer2.addStream(newStream); 

在老鉻:

var newStream = new webkitMediaStream(remoteStream.audioTracks, remoteStream.videoTracks); 
peer2.addStream(newStream); 

填寫「提供SDP」錯過屬性;我用下面的編碼:

sdp = sdp.replace(/a\=msid-semantic: WMS/g, 'a=msid-semantic: WMS ' + getChars()); 
sdp = sdp.replace(/recvonly/g, 'sendrecv') 

var chars00 = getChars(); 
var numbers = getNumbers(); 

sdp += 'a=ssrc:'+ numbers+' cname:+Sb9HXiiNN/nhpZ1\r\n'; 
sdp += 'a=ssrc:'+ numbers+' msid:' + chars00 + ' v0\r\n'; 
sdp += 'a=ssrc:'+ numbers+' mslabel:' + chars00 + '\r\n'; 
sdp += 'a=ssrc:'+ numbers+' label:' + chars00 + '\r\n'; 

var replace = 'a=rtpmap:126 telephone-event/8000\r\n'; 
var chars00 = getChars(); 
var numbers = getNumbers(); 
replace += 'a=ssrc:'+ numbers+' cname:iecJoX+jqjkT8Dky\r\n'; 
replace += 'a=ssrc:'+ numbers+' msid:' + chars00 + '\r\n'; 
replace += 'a=ssrc:'+ numbers+' mslabel:' + chars00 + '\r\n'; 
replace += 'a=ssrc:'+ numbers+' label:' + chars00; 
sdp = sdp.replace(/a\=rtpmap:126 telephone-event\/8000/g, replace) 

請記住,「getChars」和「getNumbers」方法返回隨機值。

A demo to test

+0

非常感謝您的回覆。 – user2135905 2013-03-09 15:10:19

相關問題