当 webrtc 连接(javascript)中的远程调用removeTrack() 和 addTrack() 时,本地对等点会获取带有
track(event)
的 event.streams.length === 0
事件。videoTag.srcObject
设置为 event.streams[0]
。srcObject
:let streamToAdd;
if (event.streams.length === 0)
streamToAdd = new MediaStream([addedTrack]);
else
streamToAdd = event.streams[0];
userAV.video.srcObject = streamToAdd; //// instead of event.streams[0];
我的问题是:
我想回应,完全归功于Philipp Hancke,因为我只是偶然看到他的评论,我认为对于那些将来遇到同样问题的人来说,答案会更明显。
我引用了
addTrack
文档的相关部分:
addTrack(track, stream1, stream2, /* …, */ streamN)
...
track
A
对象,表示要添加到对等点的媒体轨道 连接。MediaStreamTrack
可选stream1, …, streamN
应添加轨道的一个或多个本地
对象。MediaStream
关于问题:
streams
,则addTrack
是空数组是正确的MediaStream
并添加接收到的曲目。但是,如果同一流中还有另一个音频/视频轨道,建议使用第二个参数。这样,WebRTC 层将为您同步两个轨道(即唇形同步)。