使用WebRTC的简单对等

时间:2018-12-09 14:05:54

标签: webrtc

我想用Simple Peer创建WebRTC的简单实现。我希望用户B能够看到用户A的视频。

我的index.html:

<button id="start">Démarrer la vidéo</button>

<video id="emitter-video" width="100%" height="400px"></video>

<textarea id="offer"></textarea>


<h2>Reception</h2>

<video id="receiver-video" width="100%" height="400px"></video>

<form id="incoming">
    <textarea></textarea>
    <button type="submit">Save</button>
</form>


<script src="simplePeer.js"></script>
<script src="app.js"></script>

我的app.js:

let p = null

function bindEvents(p) {

    p.on('error', function (err) {
        console.log(err)
    })

    p.on('signal', function (data) {
        document.querySelector('#offer').textContent = JSON.stringify(data)
    })

    p.on('stream', function (stream) {
        let video = document.querySelector('#receiver-video')
        video.srcObject = stream
        video.play()
    })
}

document.querySelector('#start').addEventListener('click', function (e) {
    navigator.getUserMedia({
        video: true,
        audio: true
    }, function (stream) {
        let emitterVideo = document.querySelector('#emitter-video')
        let p = new SimplePeer({
            initiator: true,
            stream: stream,
            trickle: false
        });
        bindEvents(p)    
        emitterVideo.srcObject = stream
        emitterVideo.play()
    }, function () {})
});

document.querySelector('#incoming').addEventListener('submit', function (e) {
    e.preventDefault();
    if (p == null) {
        p = new SimplePeer({
            initiator: false,
            trickle: false
        })
        bindEvents(p)
    }
    p.signal(JSON.parse(e.target.querySelector('textarea').value))
})

但是当我将用户的合同b复制到用户a时,出现此错误:

无法设置远程答案sdp:处于错误状态:kStable

我在用户A上遇到此错误

我的活动做得很好。我可以从每个用户那里获得合同,但是视频没有出现在用户B上。

0 个答案:

没有答案