Как сделать совместное использование экрана с простым одноранговым webRT C SDK - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь реализовать webrt c и просто подключиться к своему чату. Все работает, но я хотел бы добавить опцию разделения экрана. Для этого я попробовал это:

$("#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 голосов
/ 03 мая 2020

Что я делаю, так это заменяю трек. Таким образом, вместо удаления и добавления потока:

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

Это заменит видеодорожку из потока на ту, которая отображается на экране.

Документы простого просмотра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...