我想用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))
})

但是当我将用户的 Contract b复制到用户a时,我有这个错误:

Failed to set remote answer sdp: Called in wrong state: kStable

我在用户A上收到此错误

我创造了很好的活动 . 我可以从每个用户那里获得 Contract ,但视频没有出现在用户B上 .