WebRTC:升级时视频闪烁

WebRTC: video blinks when upgrading

描述

WebRTC 示例 https://webrtc.github.io/samples/src/content/peerconnection/upgrade/ 是关于将视频轨道添加到包含音轨的现有对等连接。我稍微修改一下,然后反过来。我将程序从将视频轨道添加到音轨更改为将音频轨道添加到视频轨道。然后发现在执行这一行的时候remoteVideo标签在闪烁

remoteVideo.srcObject = e.streams[0];

换句话说,当我们将音频轨道添加到正在播放视频轨道的 html5 视频标签时,它会闪烁。

期待

不眨眼。

问题

是否可以完美添加音轨(不闪烁)?如果是,如何?

这是 WebRTC 当前 in-browser 实现的一个 well-known 问题。

一个已知的解决方法是创建一个显示新流的新 HTMLVideoElement,然后用 DOM 中的新元素替换旧元素。不要忘记将旧元素的 srcObject 设置为 null 以便它可以被垃圾回收。