`поток` не определен для события` ontrack` в WebRTC - PullRequest
0 голосов
/ 19 января 2019

В одноранговой связи WebRTC я пытаюсь реализовать Unified Plan, где могут использоваться трансиверы.В этом случае, когда ontrack запускается, поток передается как undefined.Однако я могу получить доступ к треку с transceiver.receiver.track.

-> Проблема в том, что для видео мне нужен поток вместо отдельной дорожки (аудио, видео).Как преобразовать этот отдельный трек в один поток?Предназначена ли эта функция или мне нужно установить что-то для получения самого потока.

1 Ответ

0 голосов
/ 19 января 2019

Событие track имеет аргумент streams (множественное число).Если вы знаете, что есть один поток, используйте:

pc.ontrack = event => video.srcObject = event.streams[0];

Это связано с тем, что Unified-plan основан на дорожке, и дорожка может быть связана с более чем одним потоком или вообще без потоков.

Связи потоков удаленного трека происходят из аргументов addTrack или addTransceiver :

pc.addTrack(track, streamMyTrackIsIn, optional2ndStreamMyTrackIsIn);

Отправляются только треки.Удаленные потоки воссоздаются с идентификаторами, совпадающими с потоками, переданными выше.

RTCPeerConnection автоматически управляет потоками в event.streams для вас, в ответ на такие вещи, как transceiver.direction изменения или неправильное обозначение removeTrack .

Или создайте свои собственные удаленные потоки, чтобы разместить ваши треки любым удобным вам способом:

pc.ontrack = event => video.srcObject = new MediaStream([event.track]);

Используйте последний, только если вы хотите управлять ассоциациями потоков вручную, так как он может получить осложнено .

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