您遇到的问题是PeerConnectionClient PeerConnection 的包装,它 PeerConnection。
我注意到这个问题没有得到回答,所以我想看看能否帮上忙。我查看了源代码,PeerConnectionClient对单个远程对等方进行了非常硬的编码。您将需要创建PeerConnection对象的集合,而不是下面的代码行:
private PeerConnection peerConnection;
如果环顾四周,您会发现它变得更加复杂。
createPeerConnectionInternal中的mediaStream逻辑仅应执行一次,并且您需要像这样在PeerConnection对象之间共享流:
peerConnection.addStream(mediaStream);
您可以查阅WebRTC规范或查看此问题,以确认PeerConnection类型设计为仅处理一个对等方。这里也隐约地暗示了这一点。
因此,您只需维护一个mediaStream对象:
private MediaStream mediaStream;
因此,主要思想还是一个MediaStream对象以及与要连接的对等体一样多的PeerConnection对象。因此,您将不会使用多个PeerConnectionClient对象,而是修改单个PeerConnectionClient来封装多客户端处理。如果您出于某种原因想要设计多个PeerConnectionClient对象,则只需从中提取媒体流逻辑(以及仅应创建一次的任何支持类型)。
您还需要维护多个远程视频轨道,而不是现有的一个:
private VideoTrack remoteVideoTrack;
显然,您只关心渲染一台本地摄像机并为远程连接创建多个渲染器。
我希望这些信息足以使您重回正轨。