2017-05-14 6 views
1

Hallo Ich folgte diesem Tutorial, um ein einfaches Beispiel für webrtc zu erstellen. https://www.webrtc-experiment.com/docs/WebRTC-PeerConnection.html.Warum wird die Funktion "onaddstream" nie aufgerufen?

Also meine JFFiddle aussehen: https://jsfiddle.net/xzspquew/9/ und sagen Sie mir bitte, warum ich nicht auf die Funktion onaddstream eingeben? Die Datei console.log ("diese Funktion wird aufgerufen") wird aufgerufen. Warum ?

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

Viele Dinge falsch hier aktualisiert. Was versuchst du zu machen? Sie haben zwei Peer-Verbindungen, aber Sie fordern den Benutzer auf, "Remote-Angebot einzugeben" und weitermachen, um eine Antwort zu nennen. Ich kann nicht erkennen, was das Ziel hier ist. Verbinden Sie die beiden Peer-Verbindungen oder stellen Sie eine Verbindung zu einem anderen her? – jib

Antwort

1

Dieses Tutorial scheint veraltet zu sein. Vielleicht https://webrtc.org/start/#demos-and-samples

Nach MDN-Dokumentation wird als veraltet:

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

Diese Eigenschaft wurde von der Spezifikation entfernt; Sie sollten nun RTCPeerConnection.ontrack verwenden, um stattdessen nach Track-Ereignissen zu suchen. Es ist hier enthalten, um Ihnen dabei zu helfen, bestehenden Code anzupassen und vorhandene Samples zu verstehen, die möglicherweise noch nicht auf dem neuesten Stand sind.

+0

Ich habe geändert, aber es zeigt nicht den Remote-Video-Stream in meinem jsfiddle .... – ErrorMan

+0

Siehe meine bearbeitete Antwort. Suchen Sie nach neueren Anleitungen, denn wenn der von Ihnen verwendete eine veraltete Variable hat, dann ist der Rest möglicherweise auch nicht korrekt. –

1

Es sieht man mit einem veralteten Demo versuchen,
Versuchen this demo von WebRTC offiziellen samples

In Ihrer Geige Sie richtig die Kandidaten & Ströme nicht behandelt haben.
Wenn Sie einen Anruf von pc bis pc2 tätigen, müssen Sie einen Stream zum PC hinzufügen, indem Sie pc.addstream(stream) anrufen, dann pc2.onaddstream oder pc2.onaddtrack Methode ausgelöst wird.

ich Ihre Geige https://jsfiddle.net/8mchrc3v/1/

+0

Look https://jsfiddle.net/xzspquew/10/ Ich habe pc.addstream (stream) hinzugefügt, aber das Remote-Video wird nicht angezeigt – ErrorMan

+0

Versuchen Sie diese Geige https://jsfiddle.net/8mchrc3v/1/ – Ajay

Verwandte Themen