Событие 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]);
Используйте последний, только если вы хотите управлять ассоциациями потоков вручную, так как он может получить осложнено .