я использовал простой-равный 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.
для трансформации предложения, я не использую сервер, я использую две текстовые области, первая для отображения предложения работающей вкладки, вторая для принятия другой вкладки
проблема возникает при принятии предложения