WebRTC: как использовать RTCPeerConnection.removeTrack () для удаления видео или аудио или обоих? - PullRequest
0 голосов
/ 09 октября 2018

Я изучаю WebRTC и пытаюсь понять, как он работает.

Я изменил этот пример на WebRTC.github.io, чтобы сделать getUserMedia источником leftVideo и потоковой передачей в rightVideo.It.работает.

И я хочу добавить некоторые функции, например, когда я нажимаю pause в левом видео (мой браузер - Chrome 69)

Я меняю отдельно от Call ()

...
stream.getTracks().forEach(track => {
    pc1Senders.push(pc1.addTrack(track, stream));
});
...

И добавить функцию в левое видео

leftVideo.onpause = () => {
  pc1Senders.map(sender => pc1.removeTrack(sender));
}

Я не хочу закрывать соединение, я просто хочу отключить только видео или аудио.

Но после того, как я приостановил левое видео,rightVideo по-прежнему получает трек.Я делаю что-то не так, или, может быть, в другом месте?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 15 октября 2018

Во-первых, вам нужно получить поток сверстников.Вы можете отключить / скрыть поток, используя атрибут enabled MediaStreamTrack.Используйте приведенный ниже фрагмент кода для переключения носителей.

/* stream: MediaStream, type:trackType('audio'/'video') */
toggleTrack(stream,type) {
    stream.getTracks().forEach((track) => {
        if (track.kind === type) {
            track.enabled = !track.enabled;
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...