我已经实现了缩放iOS软件开发工具包来使用自定义的UI。一切正常,但我还不知道如何才能得到当前活跃用户的userID。
我已经实现了下面的委托方法,它告诉了当前活跃的视频用户,但不幸的是,它显示了会议中除我之外的所有其他参与者。
func onSinkMeetingActiveVideo(_ userID: UInt) {
if let service = MobileRTC.shared().getMeetingService(), let username = service.userInfo(byID: userID)?.userName {
print("\(#function) : \(userID) : \(username)")
}
}我需要知道谁是当前的活跃用户,即使是我在说话。
发布于 2021-05-06 15:33:29
您可以从会议服务MobileRTCMeetingService中检索此类信息。
func getActiveUserId() -> UInt? {
if let meetingService = MobileRTC.shared().getMeetingService() {
return meetingService.activeUserID()
}
return nil
}额外注意:在Zoom中还有固定用户的概念,它覆盖了活动视频单元中的活动用户。固定的用户id可以通过以下方式检索:
func getPinnedUserId() -> UInt? {
if let meetingService = MobileRTC.shared().getMeetingService(), let userList = meetingService.getInMeetingUserList(){
for userId in userList {
if let userId = userId as? UInt, meetingService.isUserPinned(userId) {
return userId
}
}
return nil
}
return nil
}因此,为了确定哪一个是活动视频单元中视频的用户id,您必须同时检查两个,并优先考虑固定的用户。
let currentVideoUserId = getPinnedUserId() ?? getActiveUserId()在会议期间,您永远不会成为自己的视频单元中的活动用户,因为即使您正在发言,您也会继续在活动的视频单元中看到其他人。
另一方面,如果您有兴趣知道谁在说话,那么您必须检索用户列表并检查audioStatus MobileRTCAudioStatus。
请注意,您可以有多个用户同时发言。
如果您对活动扬声器用户感兴趣,还有另一个可能有用的回调:它是MobileRTCVideoServiceDelegate中的onSinkMeetingActiveVideoForDeck
根据文档,每次有新的扬声器时都应该触发它。缩放UI使用它来更改活动扬声器用户周围的黄色边框。
发布于 2021-05-06 11:30:28
I根据文档,为了获得当前活跃的视频用户信息,您应该使用以下类: MobileRTCMeetingUserInfo。
查看文档中的视频状态类MobileRTCVideoStatus:https://marketplacefront.zoom.us/sdk/meeting/ios/interface_mobile_r_t_c_video_status.html
您将看到这与MobileRTCMeetingUserInfo相关:https://marketplacefront.zoom.us/sdk/meeting/ios/interface_mobile_r_t_c_meeting_user_info.html
在这个类上,你可以找到当前用户的信息。
希望你能解决你的问题!致以问候!加斯通·蒙特斯。
https://stackoverflow.com/questions/67330569
复制相似问题