Простой Peer с WebRTC - PullRequest
       6

Простой Peer с WebRTC

0 голосов
/ 09 декабря 2018

Я хотел бы создать простую реализацию WebRTC с Simple Peer.Я хочу, чтобы пользователь 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...