invalidStateError: Не удалось установить удаленный ответ sdp с простым одноранговым API - PullRequest
0 голосов
/ 10 ноября 2018

я использовал простой-равный API: https://github.com/feross/simple-peer но у меня есть проблема, которую я не решаю. Моя цель: сделать видеочат в сети LAN с WEBRTC

вот картинка ошибки

вот код

app.js

let p= null

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

})

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

p.on('stream',function(stream){
    var video = document.querySelector('#receiver-video')
    video.volume= 0
    video.src= window.URL.createObjectURL(stream)
    video.play() 
})
}


document.querySelector('#start').addEventListener('click',function(e){
navigator.getUserMedia({
video:true,
audio:true
},function(stream){
    p = new SimplePeer({

initiator: true,
stream: stream,
trickle: false

   })
   bindEvents(p)

   let emitterVideo = document.querySelector('#emitter-video')
   emitterVideo.volume = 0
   emitterVideo.src = window.URL.createObjectURL(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))
})

index.html

<body>
    <p> DEMO DU WEBRTC</p>
    <div class="container">
        <div class="row">
<div class="col-sm-6">
    <h2> RECEPTION</h2>
    <video  controls id="receiver-video"  width="50%" height="200px">

    </video>
    <p>
        <button id="start"> start</button>
    </p>

    <textarea id="offer"  class="form-control"></textarea>

</div>
<div class="col-sm-6">
    <h2>Envoi

    </h2>
    <video controls id="emitter-video" width="50%" height="200px"> </video>
<form id="incoming">
    <div class="form-group">
<textarea  class="form-control"></textarea>

    </div>
<p>
<button type="submit">save offer </button>

</p>
</form>

</div>
        </div>
    </div>
  <script src ="app.js"></script>
  <script src="SimplePeer.js"></script>
</body>

я переименую api simplepeer.min.js (сайта: https://github.com/feross/simple-peer/blob/master/simplepeer.min.js) в SimplePeer.js. Я тестирую локально с двумя вкладками браузера Chrome. для трансформации предложения, я не использую сервер, я использую две текстовые области, первая для отображения предложения работающей вкладки, вторая для принятия другой вкладки

проблема возникает при принятии предложения

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