尝试通过屏幕共享连接到Twilio视频室

时间:2017-09-21 23:10:30

标签: twilio

我一直在研究围绕Twilio的“Chrome上的屏幕截图”指南设计新应用的方法:https://www.twilio.com/docs/api/video/screen-capture-chrome

我已成功创建Chrome扩展程序,发布该扩展程序并能够共享屏幕并将其连接到会议室。

我希望有人可以提供帮助的是让另一位用户连接并查看共享房间(共享屏幕)。

我通过以下代码共享我的屏幕(剪短了长度)并通过Twilio控制台验证它确实已连接:

const room = await connect(twToken, {
    name: 'marty',
    tracks: []
  });

  const stream = await getUserScreen(['screen'], chrmExID);
  const screenLocalTrack = new LocalVideoTrack(stream.getVideoTracks()[0]);

然后我创建了一个由第二个系统访问的测试站点,以连接到上面的房间。 我尝试了不同的方法,但第二个用户似乎从来没有在房间里看到共享视频。 例如:

const remoteDiv = document.getElementById('bodyScreen');
 room.participants.forEach(participant => {
participant.tracks.forEach(track => {
            remoteDiv.appendChild(track.attach());
          });

通过Chrome进行调试,我发现forEach正在尝试枚举未定义的对象。

我也试过了Twilio在GitHub上的一些ASP.NET C#解决方案,但我似乎在Twilio NuGet包和我正在使用的twilio-video.min.js之间存在不匹配问题

1 个答案:

答案 0 :(得分:2)

Twilio开发者传道者在这里。

我目前正在编写一个关于构建这样的应用程序的博客系列,但它还没有完成。但是,我可能会在这里帮助一点。

当您加入一个房间,并立即枚举现有参与者及其曲目时,您还应该听取每个participant's trackAdded event。一旦参与者连接,曲目可能无法连接,因此收听该事件将收到参与者加入会议室后添加的任何曲目。

room.participants.forEach(participant => {
  participant.on('trackAdded', track => {
    remoteDiv.appendChild(track.attach());
  });
});

就像我说的那样,我仍在努力写下我的经历,所以请密切注意系列发表时的Twilio blog

让我知道这是否有帮助。