我想用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))
})
但是当我将用户的合同b复制到用户a时,出现此错误:
无法设置远程答案sdp:处于错误状态:kStable
我在用户A上遇到此错误
我的活动做得很好。我可以从每个用户那里获得合同,但是视频没有出现在用户B上。