2017-05-14 36 views
1

こんにちは、私は簡単なのWebRTCの例を作成するには、このチュートリアルを追いました。 https://www.webrtc-experiment.com/docs/WebRTC-PeerConnection.html関数 "onaddstream"が呼び出されないのはなぜですか?

私のJFFiddleを見てください: https://jsfiddle.net/xzspquew/9/ と私はなぜonaddstream関数に入力できないのか教えてください? console.log( "this function is called")は呼び出されていません。どうして ?

navigator.getUserMedia({audio:false, video:true}, success, error) 

var pc = new RTCPeerConnection() 
var pc2 = new RTCPeerConnection() 

pc.onaddstream = function(event) { 
    console.log("this function is called") 
    var video2 = document.getElementById("video2") 
    video2.src = window.URL.createObjectURL(event.stream) 
    video2.play() 
} 

document.querySelector("#repondre").addEventListener('click', function repondre() { 
    var answer = prompt("Please enter your sdp remote offer"); 
    console.log(answer) 
    pc2.setRemoteDescription(JSON.parse(answer)) 
    pc2.createAnswer(successanswerrtc, errorrtc) 
}) 

function successanswerrtc(answersdp) { 
    pc2.setLocalDescription(answersdp) 
    console.log(JSON.stringify(answersdp)) 
    pc.setRemoteDescription(answersdp) 
} 

function sucessrtc(offersdp) { 
    pc.setLocalDescription(offersdp) 
    alert(JSON.stringify(offersdp)) 
    console.log(JSON.stringify(offersdp)) 
} 
function errorrtc(err) { 
    console.log("error" + err) 
} 

function success(stream) { 
    var video1 = document.getElementById("video1") 
    video1.src = window.URL.createObjectURL(stream) 
    video1.play() 
    pc.createOffer(sucessrtc, errorrtc) 
} 
function error() { 
    console.log("error") 
} 
+0

多くのものがここで間違っています。あなたは何をしようとしているのですか? 2つのピア接続がありますが、ユーザーに「リモートオファーの入力」を促し、それを回答と呼ぶように促します。私はここの目標が何であるか分からない。 2つのピア接続を接続するか、別の場所に接続しますか? – jib

答えて

1

このチュートリアルは古くなっているようです。おそらく、https://webrtc.org/start/#demos-and-samples

MDNのドキュメントによると、それが廃止されました:

https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/onaddstream

このプロパティは、仕様書から削除されています。 RTCPeerConnection.ontrackを使用してトラックイベントを監視する必要があります。既存のコードを変更したり、既存のサンプルを理解したりするために、ここに含まれていますが、最新のものではない可能性があります。それはあなたが時代遅れのデモをしようとしているに見えます

+0

私は変更しましたが、私のjsfiddleでリモートビデオストリームを表示しません.... – ErrorMan

+0

私の編集した答えを見てください。新しいチュートリアルを探してください。使用している変数が廃止予定の変数を持っていれば、残りの部分も正確ではない可能性があります。 –

1


はあなたのフィドルでのWebRTCの公式samples

からthis demoを試してみてください、あなたは適切な候補&ストリームを処理しませんでした。
からpc2に電話をかけている場合は、pc.addstream(stream)を呼び出してpc2.onaddstreamまたはpc2.onaddtrackメソッドを呼び出すことで、ストリームをPCに追加する必要があります。

フィディッドを更新しましたhttps://jsfiddle.net/8mchrc3v/1/

+0

ルックhttps://jsfiddle.net/xzspquew/10/ pc.addstream(ストリーム)を追加しましたが、リモートビデオは表示されません – ErrorMan

+0

このフィドルを試すhttps://jsfiddle.net/8mchrc3v/1/ – Ajay

関連する問題