无法显示远程视频

时间:2016-06-20 19:46:34

标签: javascript video webrtc

我已经实现了两个webrtc客户端(对等端)和一个简单的信令服务器。当地有三个要素。尽管获得媒体,同伴和信令服务器之间的提供/回答方法似乎有效,但我只能在两个对等体中显示本地视频(两者都在不同的浏览器标签中)

以下是提议者发送给其他对等方的SDP

v=0
o=- 1118386230690454721 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS

另一个同伴以类似的SDP回答,但其他会话ID。

localVideo = document.querySelector('#localVideo');
    remoteVideo = document.querySelector('#remoteVideo');

    socket = io.connect("http://localhost:3000");

    pc = new RTCPeerConnection(null);
    var constraints = {video: true, audio: true};
    getUserMedia(constraints, handleUserMedia, handleUserMediaError);

    pc.onaddstream = handleRemoteStreamAdded;
    pc.onremovestream = handleRemoteStreamRemoved;
    pc.onicecandidate = handleIceCandidate;

    var lspd;

    pc.createOffer().then(function(offer) {
        lspd = offer;
        return pc.setLocalDescription(offer);
    }).then(function() {
        var offerData = {
            sdp: lspd,
            customerName: "name",
            room: room
        }
        socket.emit('offer', offerData);

        }).catch(function(reason) {
            console.log("Error on createOffer: " + reason);
        });

    socket.on('answering', function (msg){
        pc.setRemoteDescription(msg);
    });

   function handleRemoteStreamAdded(event) {
        remoteVideo.src = window.URL.createObjectURL(event.stream);
        remoteStream = event.stream;
    }

    function handleUserMedia(stream) {
        localVideo.src = window.URL.createObjectURL(stream);
        localStream = stream;
        pc.addStream(stream);
    }

onaddstream永远不会在两个对等体中添加,我永远无法看到远程视频。此外,似乎SDP还不完整。

关于我可以尝试或调试什么以便在同伴之间进行通信的任何想法?

由于

1 个答案:

答案 0 :(得分:1)

在将流添加到peerconnection之前,您正在调用createOffer。您需要将调用createOffer(以及之后的所有内容)的代码移动到handleUserMedia函数。