我正在尝试构建一个视频会议呼叫应用程序,其中多个客户端可以连接,每个成员都应该能够看到所有其他成员的网络摄像头输入。
到目前为止,使用Twilio的快速入门文档,我可以发起对话[1],邀请参与者[2]并在连接后显示他们的视频源。
我无法弄清楚新客户端何时连接的部分,所有现有客户端也应该获取他们的视频。
现有代码:
在邀请方:
var video_token = 'valid video token';
var accessManager = new Twilio.AccessManager(video_token);
var conversationsClient = new Twilio.Conversations.Client(accessManager);
conversationsClient.inviteToConversation(['client1, client2']).then(function(conversation) {
conversation.on('participantConnected', function(participant) {
participant.media.attach('#remote-media');
})
})
在受邀者方面:
var video_token = 'valid video token';
var accessManager = new Twilio.AccessManager(video_token);
var conversationsClient = new Twilio.Conversations.Client(accessManager);
conversationsClient.listen().then(function() {
conversationsClient.on('invite', function(invite) {
invite.accept().then(function(conversation) {
conversation.on('participantConnected', function(participant) {
participant.media.attach('#remote-media');
})
})
})
})
被邀请方的代码是否也无法检测到已添加的任何新客户端并显示其流?现在,在被邀请方,显示的唯一流是邀请者的流。其他成员的所有后续连接都不会被选中。我错过了什么?
参考文献:
[1] https://media.twiliocdn.com/sdk/js/conversations/releases/0.13.5/docs/Conversation.html
[2] https://media.twiliocdn.com/sdk/js/conversations/releases/0.13.5/docs/Participant.html
答案 0 :(得分:2)
这里的问题是我们每次都使用conversationsClient.inviteToConversation
来邀请新参与者。这将为每个邀请者 - 被邀请者对创建一个新的对话。
这就是为什么参与者永远不会有关于其他参与者的任何信息。在创建初始对话后的后续邀请中,您必须使用
conversation.invite
参考文献: