我一直在研究围绕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之间存在不匹配问题
答案 0 :(得分:2)
Twilio开发者传道者在这里。
我目前正在编写一个关于构建这样的应用程序的博客系列,但它还没有完成。但是,我可能会在这里帮助一点。
当您加入一个房间,并立即枚举现有参与者及其曲目时,您还应该听取每个participant's trackAdded
event。一旦参与者连接,曲目可能无法连接,因此收听该事件将收到参与者加入会议室后添加的任何曲目。
room.participants.forEach(participant => {
participant.on('trackAdded', track => {
remoteDiv.appendChild(track.attach());
});
});
就像我说的那样,我仍在努力写下我的经历,所以请密切注意系列发表时的Twilio blog。
让我知道这是否有帮助。