4

我正在使用 twilio 作为视频聊天应用程序的服务。房间将仅包含 2 名参与者 P1 和 P2

P1

  1. 从后端获取生成的访问令牌(添加了房间授权)
  2. 从服务器获取房间名称
  3. 连接到房间

    let connectOptions = TVIConnectOptions.init(token: payload.twilioAccessToken) { (builder) in
        builder.roomName = payload.roomName
    }
    twilioLog("Will Connect to room with name \(String(describing: payload.roomName))")
    
    
    self.room = TwilioVideo.connect(with: connectOptions, delegate:self)
    
  4. func didConnect(to room: TVIRoom)调用成功。

P2

  1. 从后端获取不同的生成访问令牌(添加了房间授权)
  2. 从服务器获取相同的房间名称
  3. 连接到房间

    let connectOptions = TVIConnectOptions.init(token: payload.twilioAccessToken) { (builder) in
        builder.roomName = payload.roomName
    }
    twilioLog("Will Connect to room with name \(String(describing: payload.roomName))")
    
    
    self.room = TwilioVideo.connect(with: connectOptions, delegate:self)
    
  4. func didConnect(to room: TVIRoom)调用成功。

但是,func room(_ room: TVIRoom, participantDidConnect participant: TVIParticipant)永远不会被调用。此外, room.participants 返回一个空数组。

4

2 回答 2

0

问题是 P1 和 P2 具有相同的标识符。他们被视为同一个参与者

于 2020-05-29T10:36:04.143 回答
0
  1. 如果 P2 在 P2 已经在房间内时加入房间,您应该能够访问 P1 in room.remoteParticipants。通常,您需要为每个参与者设置委托,以接收来自远程参与者的视频、音轨。
  2. 在这种情况下,participantDidConnect将在 P1 侧调用。
于 2018-12-01T07:05:05.230 回答