简介
房间参与者管理功能提供了完整的参与者生命周期管理,包括权限管理、设备控制、消息禁言等功能。
RoomParticipantStore 提供了一套全面的 API 来管理房间参与者相关操作。说明:
参与者状态更新通过 state 发布者传递。订阅它以接收有关参与者列表的实时更新。
功能特性
权限管理:支持转让房主、设置/撤销管理员、踢出用户等操作。
设备控制:支持关闭参与者设备、禁用所有设备等操作。
消息禁言:支持禁言单个用户或全员禁言。
设备请求/邀请:支持请求开启设备、邀请开启设备等双向交互。
可订阅数据
RoomParticipantState 的字段描述如下:
属性名 | 类型 | 描述 |
participantList | 参与者列表。 | |
participantListCursor | String | 参与者列表游标。 |
audienceList | 观众列表(适用于网络研讨会模式)。 | |
audienceListCursor | String | 观众列表游标。 |
adminList | 管理员列表。 | |
messageDisabledUserList | 被禁言用户列表。 | |
participantListWithVideo | 有视频的参与者列表。 | |
participantWithScreen | 正在屏幕共享的参与者。 | |
pendingDeviceApplications | 待处理的设备申请列表。 | |
pendingDeviceInvitations | 待处理的设备邀请列表。 | |
speakingUsers | [String : Int] | 正在说话的用户及其音量。 |
networkQualities | [String : NetworkInfo] | 用户网络质量信息。 |
pendingParticipantList | 待加入的参与者列表。 | |
localParticipant | 本地参与者信息。 |
API 列表
函数名 | 描述 |
创建对象实例。 | |
参与者事件回调。 | |
参与者事件回调。 | |
获取参与者列表。 | |
获取观众列表(适用于网络研讨会模式)。 | |
根据关键字搜索用户。 | |
将观众提升为嘉宾(适用于网络研讨会模式)。 | |
将嘉宾降级为观众(适用于网络研讨会模式)。 | |
转让房主。 | |
设置管理员。 | |
撤销管理员。 | |
踢出用户。 | |
更新参与者名片。 | |
更新参与者元数据。 | |
静音麦克风。 | |
取消静音麦克风。 | |
关闭参与者设备。 | |
禁言用户。 | |
禁用所有设备。 | |
全员禁言。 | |
请求开启设备。 | |
取消开启设备请求。 | |
批准开启设备请求。 | |
拒绝开启设备请求。 | |
邀请开启设备。 | |
取消开启设备邀请。 | |
接受开启设备邀请。 | |
拒绝开启设备邀请。 |
创建实例
create
创建 RoomParticipantStore 实例。
static RoomParticipantStore create(String roomID) {return StoreFactory.shared.getStore<RoomParticipantStore>(roomID: roomID);}
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
观察状态和事件
addRoomParticipantListener
添加参与者事件回调监听器。
void addRoomParticipantListener(RoomParticipantListener listener);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
listener | 监听器。 |
removeRoomParticipantListener
移除参与者事件回调监听器。
void removeRoomParticipantListener(RoomParticipantListener listener);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
listener | 监听器。 |
参与者列表
getParticipantList
获取参与者列表。
Future<ListResultCompletionHandler<RoomParticipant>> getParticipantList(String? cursor);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
cursor | String? | 分页游标。 |
getAudienceList
获取观众列表(适用于网络研讨会模式)。
Future<ListResultCompletionHandler<RoomUser>> getAudienceList(String? cursor);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
cursor | String? | 分页游标。 |
searchUsers
根据关键字搜索用户。
Future<ListResultCompletionHandler<RoomUser>> searchUsers(String keyword);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
keyword | String | 搜索关键字。 |
观众/嘉宾角色管理
promoteAudienceToParticipant
将观众提升为嘉宾(适用于网络研讨会模式)。
Future<CompletionHandler> promoteAudienceToParticipant(String userID);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
demoteParticipantToAudience
将嘉宾降级为观众(适用于网络研讨会模式)。
Future<CompletionHandler> demoteParticipantToAudience(String userID);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
权限管理
transferOwner
转让房主。
Future<CompletionHandler> transferOwner(String userID);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
setAdmin
设置管理员。
Future<CompletionHandler> setAdmin(String userID);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
revokeAdmin
撤销管理员。
Future<CompletionHandler> revokeAdmin(String userID);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
kickUser
踢出用户。
Future<CompletionHandler> kickUser(String userID);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
updateParticipantNameCard
更新参与者名片。
Future<CompletionHandler> updateParticipantNameCard({required String userID,required String nameCard,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
nameCard | String | 名片。 |
updateParticipantMetaData
更新参与者元数据。
Future<CompletionHandler> updateParticipantMetaData({required String userID,required Map<String, String> metaData,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
metaData | [String: String] | 元数据。 |
本地麦克风控制
muteMicrophone
静音麦克风。
void muteMicrophone();
版本信息
从3.5版本开始支持。
unmuteMicrophone
取消静音麦克风。
Future<CompletionHandler> unmuteMicrophone();
版本信息
从3.5版本开始支持。
设备控制
closeParticipantDevice
关闭参与者设备。
Future<CompletionHandler> closeParticipantDevice({required String userID,required DeviceType device,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
device | DeviceType | 设备类型。 |
disableUserMessage
禁言用户。
Future<CompletionHandler> disableUserMessage({required String userID,required bool disable,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
disable | Bool | 是否禁言。 |
disableAllDevices
禁用所有设备。
Future<CompletionHandler> disableAllDevices({required DeviceType device,required bool disable,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
device | DeviceType | 设备类型。 |
disable | Bool | 是否禁用。 |
disableAllMessages
全员禁言。
Future<CompletionHandler> disableAllMessages(bool disable);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
disable | Bool | 是否禁言。 |
设备请求操作
requestToOpenDevice
请求开启设备。
Future<CompletionHandler> requestToOpenDevice({required DeviceType device,int timeout = 0,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
device | DeviceType | 设备类型。 |
timeout | Int | 超时时间(单位:秒)。 |
cancelOpenDeviceRequest
取消开启设备请求。
Future<CompletionHandler> cancelOpenDeviceRequest(DeviceType device);
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
device | DeviceType | 设备类型。 |
approveOpenDeviceRequest
批准开启设备请求。
Future<CompletionHandler> approveOpenDeviceRequest({required DeviceType device,required String userID,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
device | DeviceType | 设备类型。 |
userID | String | 用户 ID。 |
rejectOpenDeviceRequest
拒绝开启设备请求。
Future<CompletionHandler> rejectOpenDeviceRequest({required DeviceType device,required String userID,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
device | DeviceType | 设备类型。 |
userID | String | 用户 ID。 |
设备邀请操作
inviteToOpenDevice
邀请开启设备。
Future<CompletionHandler> inviteToOpenDevice({required String userID,required DeviceType device,int timeout = 0,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
device | DeviceType | 设备类型。 |
timeout | Int | 超时时间(单位:秒)。 |
cancelOpenDeviceInvitation
取消开启设备邀请。
Future<CompletionHandler> cancelOpenDeviceInvitation({required String userID,required DeviceType device,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
device | DeviceType | 设备类型。 |
acceptOpenDeviceInvitation
接受开启设备邀请。
Future<CompletionHandler> acceptOpenDeviceInvitation({required String userID,required DeviceType device,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
device | DeviceType | 设备类型。 |
declineOpenDeviceInvitation
拒绝开启设备邀请。
Future<CompletionHandler> declineOpenDeviceInvitation({required String userID,required DeviceType device,});
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
userID | String | 用户 ID。 |
device | DeviceType | 设备类型。 |
数据结构
ParticipantRole
参与者角色。
枚举值 | 值 | 说明 |
owner | 0 | 房主。 |
admin | 1 | 管理员。 |
generalUser | 2 | 普通用户。 |
RoomParticipantStatus
参与者状态。
枚举值 | 说明 |
scheduled | 已预约。 |
inCalling | 呼叫中。 |
callTimeout | 呼叫超时。 |
callRejected | 呼叫被拒绝。 |
inRoom | 在房间中。 |
KickedOutOfRoomReason
被踢出房间的原因。
枚举值 | 说明 |
kickedByAdmin | 被管理员踢出。 |
replacedByAnotherDevice | 被其他设备顶替。 |
kickedByServer | 被服务器踢出。 |
connectionTimeout | 连接超时。 |
invalidStatusOnReconnect | 重连时状态无效。 |
roomLimitExceeded | 房间人数超限。 |
RoomParticipantListener
参与者事件回调。
方法
方法名 | 说明 |
onParticipantJoined | 当参与者加入房间时触发此回调。 |
onParticipantLeft | 当参与者离开房间时触发此回调。 |
onAudiencePromotedToParticipant | 当观众被提升为嘉宾时触发此回调。 |
onParticipantDemotedToAudience | 当嘉宾被降级为观众时触发此回调。 |
onOwnerChanged | 当房主变更时触发此回调。 |
onAdminSet | 当设置管理员时触发此回调。 |
onAdminRevoked | 当撤销管理员时触发此回调。 |
onKickedFromRoom | 当被踢出房间时触发此回调。 |
onParticipantDeviceClosed | 当参与者设备被关闭时触发此回调。 |
onUserMessageDisabled | 当用户被禁言时触发此回调。 |
onAllDevicesDisabled | 当所有设备被禁用时触发此回调。 |
onAllMessagesDisabled | 当全员禁言时触发此回调。 |
onDeviceRequestReceived | 当收到设备请求时触发此回调。 |
onDeviceRequestCancelled | 当设备请求被取消时触发此回调。 |
onDeviceRequestTimeout | 当设备请求超时时触发此回调。 |
onDeviceRequestApproved | 当设备请求被批准时触发此回调。 |
onDeviceRequestRejected | 当设备请求被拒绝时触发此回调。 |
onDeviceRequestProcessed | 当设备请求被处理时触发此回调。 |
onDeviceInvitationReceived | 当收到设备邀请时触发此回调。 |
onDeviceInvitationCancelled | 当设备邀请被取消时触发此回调。 |
onDeviceInvitationTimeout | 当设备邀请超时时触发此回调。 |
onDeviceInvitationAccepted | 当设备邀请被接受时触发此回调。 |
onDeviceInvitationDeclined | 当设备邀请被拒绝时触发此回调。 |
RoomParticipant
房间参与者信息。
DeviceRequestInfo
设备请求信息。
RoomParticipantState
RoomParticipantStore 对外提供的参与者相关状态数据。
属性 | 类型 | 说明 |
participantList | 参与者列表。 | |
participantListCursor | String | 参与者列表游标。 |
audienceList | 观众列表(适用于网络研讨会模式)。 | |
audienceListCursor | String | 观众列表游标。 |
adminList | 管理员列表。 | |
messageDisabledUserList | 被禁言用户列表。 | |
participantListWithVideo | 有视频的参与者列表。 | |
participantWithScreen | 正在屏幕共享的参与者。 | |
pendingDeviceApplications | 待处理的设备申请列表。 | |
pendingDeviceInvitations | 待处理的设备邀请列表。 | |
speakingUsers | [String : Int] | 正在说话的用户及其音量。 |
networkQualities | [String : NetworkInfo] | 用户网络质量信息。 |
pendingParticipantList | 待加入的参与者列表。 | |
localParticipant | 本地参与者信息。 |