【问题标题】:Connecting to a Twilio video room that already has participants连接到已经有参与者的 Twilio 视频室
【发布时间】:2021-10-09 05:39:33
【问题描述】:

当用户加入一个房间中已有另一个人的房间时,加入的人应该看到房间里已经有用户的视频和音频*。

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

如何订阅已在房间内的用户的曲目/曲目发布?

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

【问题讨论】:

    标签: javascript twilio twilio-video


    【解决方案1】:

    这里是 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 并在此时执行相同的操作。

    【讨论】:

    • 嗨@philnash,非常感谢您的帮助,因为这解决了我的问题。如果您有权访问,您是否可以考虑更新“将 v1 迁移到 v2”文档,因为它不包括示例中的内容,而 github 自述文件包含。令人沮丧的是我在阅读您的帖子前大约 10 分钟解决了它:'D
    • 这实际上并不是从 v1 到 v2 的更改,跟踪发布和订阅事件在该更新之前到达。不过我会考虑更新room docs you referenced in the question
    • 奇怪的是我在升级时遇到了这个问题。使用 v1,我能够遍历参与者曲目并运行 track.attach() 并且无论任何曲目订阅状态如何,它都可以正常工作。使用 V2,我可以遍历参与者 trackPublications,但是当应用程序初始化时我无法访问该轨道,因为它没有被订阅。我在 V1 的实现中可能采用了错误的方法,我应该一直在监听订阅的事件?
    • 啊,我想也许事件和发布/订阅是在 v2 之前出现的,但是获取发布和获取订阅的分裂只在 v2 之后出现。
    • 我升级的应用程序具有相当旧的 Twilio SDK 实现,因此它可以在实现拆分之前编写
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多