连接到已有参与者的 Twilio 视频室

Connecting to a Twilio video room that already has participants

当用户加入的房间中已有其他人时,加入的人应该会看到该用户已经在房间中的视频和音频*。

the docs 中所示,在房间初始化时,我遍历房间中的所有参与者以通过执行 participant.tracks.forEach(publication => publication.track.attach()) 附加到他们的轨道。但是我收到一个错误,因为曲目未定义,我了解到这是因为我没有订阅曲目。

如何订阅 tracks/track 已经在房间里的用户的发布?

*已经在房间里的用户正在使用旧的 Android SDK,而房间里的用户正在使用最新的 2.0 Javascript SDK

此处为 Twilio 开发人员布道师。

当您遍历那些现有参与者时,他们的曲目可能会发布,但您可能尚未订阅该曲目。因此,您应该检查曲目发布 isSubscribed 是否已发布,并且仅在该点添加曲目。否则,您可以收听 track publication's subscribed event 然后附加曲目。

room.participants.forEach(participant => {
  participant.tracks.forEach(publication => {
    if (publication.isSubscribed) {
      const mediaElement = publication.track.attach();
      // add mediaElement to the DOM
    } else {
      publication.on("subscribed", track => {
        const mediaElement = track.attach();
        // add mediaElement to the DOM
      })
    }
  })
})

或者,您也可以收听 trackSubscribed event of a participant 并在此时执行相同的操作。