简介
房间管理功能提供了完整的房间生命周期管理,包括即时房间和预约房间两种模式。
RoomStore 提供了一套全面的 API 来管理房间相关操作。说明:
房间状态更新通过
state 发布者传递。订阅它以接收有关当前房间和预约房间列表的实时更新。功能特性
即时房间:支持创建和加入即时房间。
预约房间:支持预约房间、修改预约、取消预约等操作。
房间呼叫:支持呼叫用户加入房间、接受/拒绝呼叫等操作。
状态管理:实时跟踪当前房间状态和预约房间列表。
可订阅数据
RoomState 的字段描述如下:
API 列表
函数名 | 描述 |
获取单例对象。 | |
房间事件回调。 | |
房间事件回调。 | |
获取预约房间列表。 | |
获取预约房间参与者。 | |
预约房间。 | |
更新预约房间。 | |
添加预约参与者。 | |
移除预约参与者。 | |
取消预约房间。 | |
创建并加入房间。 | |
加入房间。 | |
离开房间。 | |
结束房间。 | |
更新房间信息。 | |
获取房间信息。 | |
获取待处理的呼叫列表。 | |
呼叫用户加入房间。 | |
取消呼叫。 | |
接受呼叫。 | |
拒绝呼叫。 | |
开始云端录制。 | |
停止云端录制。 |
获取实例
RoomStore.shared
获取单例对象。
观察状态和事件
addRoomListener
添加房间事件回调监听器。
abstract addRoomListener(listener: RoomListener): void
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
listener | 监听器。 |
removeRoomListener
移除房间事件回调监听器。
abstract removeRoomListener(listener: RoomListener): void
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
listener | 监听器。 |
预约房间操作
getScheduledRoomList
获取预约房间列表。
abstract getScheduledRoomList(cursor: string | undefined): Promise<ListResult<RoomInfo>>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
cursor | String? | 分页游标。 |
getScheduledAttendees
获取预约房间参与者。
abstract getScheduledAttendees(roomID: string, cursor: string | undefined): Promise<ListResult<RoomUser>>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
cursor | String? | 分页游标。 |
scheduleRoom
预约房间。
abstract scheduleRoom(roomID: string, options: ScheduleRoomOptions): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
options | 预约选项。 |
updateScheduledRoom
更新预约房间。
abstract updateScheduledRoom(roomID: string,options: ScheduleRoomOptions,modifyFlagList: ScheduleRoomOptionsModifyFlag[],): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
options | 预约选项。 | |
modifyFlagList | | 修改标志列表。 |
addScheduledAttendees
添加预约参与者。
abstract addScheduledAttendees(roomID: string, userIDList: string[]): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
userIDList | [String] | 用户 ID 列表。 |
removeScheduledAttendees
移除预约参与者。
abstract removeScheduledAttendees(roomID: string, userIDList: string[]): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
userIDList | [String] | 用户 ID 列表。 |
cancelScheduledRoom
取消预约房间。
abstract cancelScheduledRoom(roomID: string): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
即时房间操作
createAndJoinRoom
创建并加入房间。
abstract createAndJoinRoom(roomID: string,roomType: RoomType,options: CreateRoomOptions,): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
roomType | 房间类型(标准房间或网络研讨会)。 | |
options | 创建选项。 |
joinRoom
加入房间。
abstract joinRoom(roomID: string, roomType: RoomType, password?: string): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
roomType | 房间类型(标准房间或网络研讨会)。 | |
password | String? | 房间密码。 |
leaveRoom
离开房间。
abstract leaveRoom(): Promise<void>
版本信息
从3.5版本开始支持。
endRoom
结束房间。
abstract endRoom(): Promise<void>
版本信息
从3.5版本开始支持。
updateRoomInfo
更新房间信息。
abstract updateRoomInfo(roomID: string,options: UpdateRoomOptions,modifyFlagList: UpdateRoomOptionsModifyFlag[],): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
options | 更新选项。 | |
modifyFlagList | | 修改标志列表。 |
getRoomInfo
获取房间信息。
abstract getRoomInfo(roomID: string): Promise<RoomInfo>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
房间呼叫操作
getPendingCalls
获取待处理的呼叫列表。
abstract getPendingCalls(roomID: string, cursor: string | undefined): Promise<ListResult<RoomCall>>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
cursor | String? | 分页游标。 |
callUserToRoom
呼叫用户加入房间。
abstract callUserToRoom(roomID: string,userIDList: string[],timeout?: number,extensionInfo?: string | undefined,): Promise<Map<string, RoomCallResult>>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
userIDList | [String] | 用户 ID 列表。 |
timeout | Int | 超时时间(单位:秒)。 |
extensionInfo | String? | 扩展信息。 |
cancelCall
取消呼叫。
abstract cancelCall(roomID: string, userIDList: string[]): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
userIDList | [String] | 用户 ID 列表。 |
acceptCall
接受呼叫。
abstract acceptCall(roomID: string): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
rejectCall
拒绝呼叫。
abstract rejectCall(roomID: string, reason: CallRejectionReason): Promise<void>
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
roomID | String | 房间 ID。 |
reason | 拒绝原因。 |
录制操作
startRecording
开始云端录制。
abstract startRecording(options?: StartRecordingOptions): Promise<void>
仅 Owner 和 Admin 有权限调用。
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
options | 录制选项,预留扩展。 |
stopRecording
停止云端录制。
abstract stopRecording(): Promise<void>
仅 Owner 和 Admin 有权限调用。
版本信息
从3.5版本开始支持。
数据结构
RoomType
房间类型。
枚举值 | 值 | 说明 |
standard | 1 | 标准房间。 |
webinar | 2 | 网络研讨会。 |
RoomStatus
房间状态。
枚举值 | 值 | 说明 |
scheduled | 1 | 已预约。 |
running | 2 | 进行中。 |
RoomCallStatus
房间呼叫状态。
枚举值 | 值 | 说明 |
none | 0 | 无呼叫。 |
calling | 1 | 呼叫中。 |
timeout | 2 | 呼叫超时。 |
rejected | 3 | 呼叫被拒绝。 |
RoomCallResult
呼叫用户加入房间的结果。
枚举值 | 值 | 说明 |
success | 0 | 呼叫成功。 |
alreadyInCalling | 1 | 用户已在呼叫中。 |
alreadyInRoom | 2 | 用户已在房间中。 |
CallRejectionReason
呼叫拒绝原因。
枚举值 | 值 | 说明 |
rejected | 0 | 用户主动拒绝。 |
inOtherRoom | 1 | 用户在其他房间中。 |
RecordingStatus
录制状态。
枚举值 | 值 | 说明 |
none | 0 | 未录制。 |
recording | 1 | 录制中。 |
RecordingStopReason
录制停止原因。
枚举值 | 值 | 说明 |
stoppedByUser | 0 | 用户主动停止。 |
roomDismissed | 1 | 房间已解散。 |
maxDurationReached | 2 | 已达到最大录制时长。 |
storageLimitReached | 3 | 已达到存储空间上限。 |
RecordingError
录制相关错误码。
枚举值 | 值 | 说明 |
noError | 0 | 操作成功。 |
noPermission | 1 | 调用者不是 Owner / Admin。 |
featureNotEnabled | 2 | 控制台未开启云端录制功能。 |
storageNotConfigured | 3 | 未配置录制存储(COS / VOD)。 |
serviceUnavailable | 4 | RoomKit / TRTC 录制服务暂时不可用。 |
unknownError | 5 | 未知错误。 |
RoomListener
房间事件回调。
方法
方法名 | 说明 |
onAddedToScheduledRoom | 当被添加到预约房间时触发此回调。 |
onRemovedFromScheduledRoom | 当被从预约房间移除时触发此回调。 |
onScheduledRoomCancelled | 当预约房间被取消时触发此回调。 |
onScheduledRoomStartingSoon | 当预约房间即将开始时触发此回调。 |
onRoomEnded | 当房间结束时触发此回调。 |
onCallReceived | 当收到房间呼叫时触发此回调。 |
onCallCancelled | 当房间呼叫被取消时触发此回调。 |
onCallTimeout | 当房间呼叫超时时触发此回调。 |
onCallAccepted | 当房间呼叫被接受时触发此回调。 |
onCallRejected | 当房间呼叫被拒绝时触发此回调。 |
onCallHandledByOtherDevice | 当房间呼叫被其他设备处理时触发此回调。 |
onCallRevokedByAdmin | 当房间呼叫被管理员撤销时触发此回调。 |
onRecordingStarted | 当录制开始时触发此回调。 |
onRecordingStopped | 当录制停止时触发此回调。 |
RoomUser
房间用户信息。
属性 | 类型 | 说明 |
userID | String | 用户 ID。 |
userName | String | 用户名称。 |
avatarURL | String | 用户头像 URL。 |
RecordingInfo
录制信息。
属性 | 类型 | 说明 |
status | 录制状态。 | |
operatorUser | 开始录制的用户。 | |
startTime | Int | 录制开始时间戳。 |
RoomInfo
房间信息。
属性 | 类型 | 说明 |
roomID | String | 房间 ID。 |
roomName | String | 房间名称。 |
roomOwner | 房间所有者。 | |
roomType | 房间类型。 | |
participantCount | Int | 参与者数量。 |
audienceCount | Int | 观众数量(适用于网络研讨会模式)。 |
createTime | Int | 创建时间。 |
roomStatus | 房间状态。 | |
scheduledStartTime | Int | 预约开始时间。 |
scheduledEndTime | Int | 预约结束时间。 |
startReminderInSeconds | Int | 开始前提醒秒数。 |
scheduleAttendees | 预约参与者列表。 | |
password | String? | 房间密码。 |
isAllMicrophoneDisabled | Bool | 是否禁用所有麦克风。 |
isAllCameraDisabled | Bool | 是否禁用所有摄像头。 |
isAllMessageDisabled | Bool | 是否禁用所有消息。 |
isAllScreenShareDisabled | Bool | 是否禁用所有屏幕共享。 |
recordingInfo | 录制信息。 |
ScheduleRoomOptionsModifyFlag
预约房间选项修改标志。
ScheduleRoomOptions
预约房间选项。
属性 | 类型 | 说明 |
roomName | String | 房间名称。 |
password | String | 房间密码。 |
scheduleStartTime | Int | 预约开始时间。 |
scheduleEndTime | Int | 预约结束时间。 |
reminderSecondsBeforeStart | Int | 开始前提醒秒数。 |
scheduleAttendees | [String] | 预约参与者 ID 列表。 |
isAllMicrophoneDisabled | Bool | 是否禁用所有麦克风。 |
isAllCameraDisabled | Bool | 是否禁用所有摄像头。 |
isAllScreenShareDisabled | Bool | 是否禁用所有屏幕共享。 |
isAllMessageDisabled | Bool | 是否禁用所有消息。 |
CreateRoomOptions
创建房间选项。
属性 | 类型 | 说明 |
roomName | String | 房间名称。 |
password | String | 房间密码。 |
isAllMicrophoneDisabled | Bool | 是否禁用所有麦克风。 |
isAllCameraDisabled | Bool | 是否禁用所有摄像头。 |
isAllScreenShareDisabled | Bool | 是否禁用所有屏幕共享。 |
isAllMessageDisabled | Bool | 是否禁用所有消息。 |
UpdateRoomOptionsModifyFlag
更新房间选项修改标志。
UpdateRoomOptions
更新房间选项。
属性 | 类型 | 说明 |
roomName | String | 房间名称。 |
password | String | 房间密码。 |
StartRecordingOptions
开始录制选项。
RoomCall
房间呼叫信息。
属性 | 类型 | 说明 |
caller | 呼叫者信息。 | |
callee | 被呼叫者信息。 | |
status | 呼叫状态。 |
RoomState
RoomStore 对外提供的房间相关状态数据。
CallUserToRoomCompletionHandler
呼叫用户加入房间完成回调。
方法
onSuccess: 成功回调。
fun onSuccess(result: Map<String, RoomCallResult>)
参数名 | 类型 | 说明 |
result | 呼叫结果映射。 |
onFailure: 失败回调。
fun onFailure(code: Int, desc: String)
参数名 | 类型 | 说明 |
code | Int | 错误码。 |
desc | String | 错误描述。 |
GetRoomInfoCompletionHandler
获取房间信息完成回调。
方法
onSuccess: 成功回调。
fun onSuccess(roomInfo: RoomInfo)
参数名 | 类型 | 说明 |
roomInfo | 房间信息。 |
onFailure: 失败回调。
fun onFailure(code: Int, desc: String)
参数名 | 类型 | 说明 |
code | Int | 错误码。 |
desc | String | 错误描述。 |