如何使用简单对等的webRTC SDK进行屏幕共享

时间:2020-04-08 08:21:00

标签: javascript webrtc communication signaling simple-peer

我正在尝试实现Webrtc和聊天的简单对等。一切正常,但我想添加屏幕共享选项。为此,我尝试过:

$("#callScreenShare").click(async function(){
   if(captureStream != null){                
     p.removeStream(captureStream)
     p.addStream(videoStream)
     captureStreamTrack.stop()
     captureStreamTrack =captureStream= null
     $("#callVideo")[0].srcObject = videoStream
     $(this).text("screen_share")
   }else{
     captureStream = await navigator.mediaDevices.getDisplayMedia({video:true, audio:true})
     captureStreamTrack = captureStream.getTracks()[0]
     $("#callVideo")[0].srcObject = captureStream
     p.removeStream(videoStream)
     console.log(p)
     p.addStream(captureStream)
     $(this).text("stop_screen_share")
   }
})

但是我停止了摄像头,此后什么也不做,对等计算机上的视频流也被阻止了。没有错误,仅此而已。

在触发事件流时,我放置了console.log。第一次触发,但是当我调用 addStream 方法时,它不会

如果有人可以帮助我,那真的很有帮助。

1 个答案:

答案 0 :(得分:0)

我要做的是替换音轨。因此,而不是删除和添加流:

p.streams[0].getVideoTracks()[0].stop()
p.streams[0].replaceTrack(p.streams[0].getVideoTracks()[0], captureStreamTrack, p.streams[0])

这将用显示之一替换流中的视频轨道。

simple-peer docs