呈现现有参与者的视频轨迹

问题描述:

因此,我连接到一个房间,该房间可能已经有现有参与者共享他们的视频。但是,当我尝试遍历所有参与者并添加他们各自的视频时...它不起作用。出于某种原因,即使参与者人数不是0. 如何获取房间中所有现有参与者的视频轨迹并渲染它们?呈现现有参与者的视频轨迹

所以基本上是这样的工作流程:

  1. 用户1和2进入房间,并分享他们的影片
  2. 用户3进入房间,并希望在屏幕上显示现有参与者的视频(例如用户1和2在他之前登录) 我该怎么做? )

这里是我的,当一个进入room.the addVideoTrack功能使得任何新的参与者的视频,所以它的做工精细,其触发的didConnect()委托代码,但我想这样做对以前存在参与者。

func didConnect(to room: TVIRoom) { 
    connectedParticipants = room.participants 
    for participant in connectedParticipants { 

     for videoTrack in participant.videoTracks { 
      addVideoTrack(videoTrack:videoTrack) 
     } 

    } 

    changeRoomLabel(messageText: "Room: \(room.name)") 
} 
+0

再次解释 – CodeMaker

Twilio开发人员传道这里。

当您连接到房间并找到参与者时,您可能尚未连接到他们的媒体流。相反,您应该实施TVIParticipantDelegate。正如你可以在Twilio Video quickstart application看到(只处理一个外部的参与者,但它是一个很好的例子),连接到一个房间时,该控制器设置为参与者的委托:

func didConnect(to room: TVIRoom) { 
    if (room.participants.count > 0) { 
     self.participant = room.participants[0] 
     self.participant?.delegate = self 
    } 
} 

然后,例如实现了TVIParticipantDelegateparticipant:addedVideoTrack到呈现视频,一旦它被添加到参与者:

extension ViewController : TVIParticipantDelegate { 
    func participant(_ participant: TVIParticipant, addedVideoTrack videoTrack: TVIVideoTrack) { 
     logMessage(messageText: "Participant \(participant.identity) added video track") 

     if (self.participant == participant) { 
      setupRemoteVideoView() 
      videoTrack.addRenderer(self.remoteView!) 
     } 
    } 
} 

And the other delegate methods here

让我知道这是否有帮助。