2016-08-01 101 views
2

Seit RTCPeerConnection.addStream() ist veraltet, wie fügt man jetzt einen Medienstream wie Video zu einem PeerConnection?Ersetzen von .addStream() für Video WebRTC

Hier ist die Video-Stream-Capture-Funktion, die ich derzeit verwende. Ich wollte sehen, ob ich einen Medienstrom von meiner Kamera zurückbekomme und tatsächlich bin ich es. Aber wie kann ich den Stream zu einer Peer-Verbindung hinzufügen?

var constraints = { 
    audio: false, 
    video: true 
}; 

function successCallback(stream) { 
    window.stream = stream; // stream available to console 
    if (window.URL) { 
    document.getElementById('localVid').src = window.URL.createObjectURL(stream); 
    } else { 
    document.getElementById('localVid').src = stream; 
    } 
    peerConn.addStream(s); //deprecated so onaddstream is not fired 
} 

function errorCallback(error) { 
    console.log('navigator.getUserMedia error: ', error); 
} 

Ich habe erfolgreich ein Signalsystem für die Datenkanäle und nun eingerichtet ich Streaming bewege auf, aber die begrenzten Ressourcen sind frustrierend und ich brauche etwas Hilfe.

+1

In der [docs] (https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addStream) sagen sie, dass Sie auf 'addTrack()' Methode und anstelle der '' wechseln sollten onaddstream' event verwendet 'ontrack' Event. Hast du es versucht? –

+0

https://webrtc.github.io/samples/ ist eine Sammlung von Beispielen, die ständig von Personen aktualisiert und überprüft werden, die für Google und Mozilla arbeiten. Wenn Sie immer noch URL.createURLObject verwenden (was nicht mehr der Spezifikation entspricht), sollten Sie sich die dort gezeigten Alternativen ansehen. –

+0

"Veraltet" bedeutet nicht, dass es heute nicht funktioniert, Sie werden nur eine freundliche Warnung in der Webkonsole von Firefox sehen. Hast Du es versucht? – jib

Antwort

2

Mozilla hat beschlossen, addStream ohne Chrome zu deaktivieren und die neue Alternative addTrack einzuführen. addStream wird weiterhin unterstützt und ich bezweifle, dass es entfernt wird, solange es die einzige Methode in Chrome bleibt.

Beachten Sie, dass Onaddstream ausgelöst wird, wenn ein Remote-Stream zu einer Peer-Verbindung, nicht wenn ein lokaler Stream hinzugefügt wird.

+1

Technisch gesehen, [die Spezifikation] (http://w3c.github.io/webrtc-pc/#rtcpeerconnection-interface-extensions) verwarf 'addStream'. Mozilla versucht nur, mit der Spezifikation Schritt zu halten. – jib

+0

Ich entwickle mich in Chrom. Bedeutet dies, dass addTrack noch nicht unterstützt wird und ich trotzdem aaddStream benutzen muss? –

+0

@PjRigor Ja. Bis Chrome es behebt, bleibt "addStream" die API mit der meisten Unterstützung in den Browsern. Alternativ können Sie versuchen, Unterstützung mit 'let pc = new RTCPeerConnection (config) zu erkennen; if ("addTrack" in pc) {/ * benutze addTrack * /} ' – jib