带 admin 前缀的接口需要主持人(.host)或联席主持人(.coHost)身份,普通成员调用会收到服务端返回的权限错误。调用前先判断:
管控动作生效后,所有成员都会收到对应的房间 / 成员状态事件,你不需要在发起方本地手动改状态,统一在事件里刷新即可。
房间级管控
全体静音的两个开关
micDisabled 和 selfUnmuteMicDisabled 含义不同,一起决定成员的体验:
开启「全体静音」时,非主持人成员的麦克风会被自动关闭。之后成员能否自己重新开麦,取决于 selfUnmuteMicDisabled。摄像头是同一套规则。
结束会议
所有成员会被断开,成员端通过 meeting(_:didDisconnect:) 感知。发起方自己也需要把界面退回会议外。
成员管理
对应的成员状态事件:userNameDidChange、userRoleDidChange、userChatDisabledDidChange、userDrawDisabledDidChange(1.3.6 起)。被移出的成员通过 didDisconnect 感知。
转移主持人时,所有成员先收到两次 userRoleDidChange(新主持人 .host、原主持人 .member),再收到 roomHostDidMove(1.5.0 起)。原主持人的降级由 SDK 在本地完成,事件发出时 getUsersInfoList() 已是新角色:
只需要刷新角色展示的话,处理 userRoleDidChange 就够了。
涂鸦权限的当前状态读 MeetingUserInfo.drawDisabled,变化时收到:
关闭成员麦克风 / 摄像头,以及邀请成员开启,见 举手与开启请求。
修改自己的会中昵称
这个动作不需要主持人身份:
参会人员维护
修改受邀人员名单
查询谁还没进来
返回 [NoEnterUserInfo],含昵称、手机号、头像、角色等信息。
提醒入会
useSms 为 true 时同时发短信提醒。
会中呼叫
被呼叫方如果已经启用了会议外消息,会收到 imCallCalling 事件,见 会议外消息。
在线人员列表
主持人身处分组小组时,编辑分组成员要拉的是主会场的在线成员,用带 meetingId 的重载并传 RoomInfo.parent,见 分组讨论。
邀请设备入会
会议支持把 SIP、H.323、GB28181、RTSP / RTMP 拉流、文件播放等外部设备拉进会议。
先查可用设备:
再发起邀请:
AgentType 可选值见 类型定义。设备当前在线状态读 AgentInfo.status(.unknown / .online / .offline,见 AgentStatus)。
1.5.0 起 AgentStatus 的取值改为与服务端一致:0 未知、1 在线、2 离线(此前为 1 空闲、2 忙碌、3 离线)。idle / busy 仍可编译,但已废弃,分别等于 .online / .offline。按 rawValue 做数值比较的代码需要检查。
邀请 GB28181 设备
GB28181 设备要按「设备编号:通道编号」逐个通道邀请,直接传 contact 会被服务端拒绝。通道表在 AgentInfo.connSubjects({通道编号: 通道名},1.5.0 起):
后端下发的完整连接参数在 AgentInfo.connParams([String: AnyCodable]?),SDK 原样透传。
相关页面