我正在尝试实现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 方法时,它不会
如果有人可以帮助我,那真的很有帮助。
答案 0 :(得分:0)
我要做的是替换音轨。因此,而不是删除和添加流:
p.streams[0].getVideoTracks()[0].stop()
p.streams[0].replaceTrack(p.streams[0].getVideoTracks()[0], captureStreamTrack, p.streams[0])
这将用显示之一替换流中的视频轨道。