我想用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上 .