wx.onVoIPChatMembersChanged和wx.onVoIPVideoMembersChanged返回的openidList有问题
我用三个手机进行尝试
最后一个加入房间的手机调用wx.exitVoIPChat可以正常退出, 不会影响前两个加入房间的手机.
如果前两个中的一个通过wx.exitVoIPChat退出房间, 则还在房间中的手机的wx.onVoIPChatMembersChanged拿到的openidList只有手机自己的openid, wx.onVoIPChatMembersChanged拿到的openidList为空数组, 这样就导致整个房间都崩掉了
例如三个手机依次进入房间后, 手机2退出, 则手机1和手机3的wx.onVoIPChatMembersChanged回调参数的openidList是下面这样的
- 手机1: openidList: ['手机1的openid']
- 手机3: openidList: ['手机3的openid']
wx.onVoIPVideoMembersChanged回调参数的openidList是下面这样的
- 手机1: openidList: []
- 手机3: openidList: []
---
但按道理wx.onVoIPChatMembersChanged回调参数的openidList应该是这样的
- 手机1: openidList: ['手机1的openid', '手机3的openid']
- 手机3: openidList: ['手机1的openid', '手机3的openid']
wx.onVoIPVideoMembersChanged回调参数的openidList是下面这样的
- 手机1: openidList: ['手机1的openid', '手机3的openid']
- 手机3: openidList: ['手机1的openid', '手机3的openid']
---
下面是部分代码
joinRoom(){
... //省略部分代码
wx.joinVoIPChat({
roomType: "video",
signature,
nonceStr,
timeStamp,
groupId,
success: (res) => {
console.log('res', res);
this.setData({
openid_list: res.openIdList
})
wx.onVoIPVideoMembersChanged(this.handleVideoMemberChange);
wx.onVoIPChatMembersChanged(this.handleChatMemberChange);
},
fail: (err) => {
console.log('joinVoIPChat err', err);
}
})
},
handleChatMemberChange(data){
console.log('handleChatMemberChange', data.openIdList);
console.log('self_openid', this.data.self_openid);
this.setData({
openid_list: data.openIdList
})
},
handleVideoMemberChange(data){
console.log('handleVideoMemberChange', data.openIdList);
console.log('self_openid', this.data.self_openid);
wx.subscribeVoIPVideoMembers({
openIdList: data.openIdList
})
}