帮你快速理解、总结文档立即下载

RoomStore

最近更新时间:2026-07-20 15:11:01

我的收藏

简介

房间管理功能提供了完整的房间生命周期管理,包括即时房间和预约房间两种模式。RoomStore 提供了一套全面的 API 来管理房间相关操作。
说明:
房间状态更新通过 state 发布者传递。订阅它以接收有关当前房间和预约房间列表的实时更新。

功能特性

即时房间:支持创建和加入即时房间。
预约房间:支持预约房间、修改预约、取消预约等操作。
房间呼叫:支持呼叫用户加入房间、接受/拒绝呼叫等操作。
状态管理:实时跟踪当前房间状态和预约房间列表。

可订阅数据

RoomState 的字段描述如下:
属性名
类型
描述
scheduledRoomList
StateFlow<List<RoomInfo>>
预约房间列表。
scheduledRoomListCursor
StateFlow<String>
预约房间列表游标。
currentRoom
StateFlow<RoomInfo?>
当前房间信息。

API 列表

函数名
描述
获取单例对象。
房间事件回调。
房间事件回调。
获取预约房间列表。
获取预约房间参与者。
预约房间。
更新预约房间。
添加预约参与者。
移除预约参与者。
取消预约房间。
创建并加入房间。
加入房间。
离开房间。
结束房间。
更新房间信息。
获取房间信息。
获取待处理的呼叫列表。
呼叫用户加入房间。
取消呼叫。
接受呼叫。
拒绝呼叫。
开始云端录制。
停止云端录制。

获取实例

RoomStore.shared

获取单例对象。

观察状态和事件

addRoomListener

添加房间事件回调监听器。
abstract fun addRoomListener(listener: RoomListener?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
listener
监听器。

removeRoomListener

移除房间事件回调监听器。
abstract fun removeRoomListener(listener: RoomListener?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
listener
监听器。

预约房间操作

getScheduledRoomList

获取预约房间列表。
abstract fun getScheduledRoomList(cursor: String?, completion: ListResultCompletionHandler<RoomInfo>?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
cursor
String?
分页游标。
completion
ListResultCompletionHandler<RoomInfo>?
完成回调。

getScheduledAttendees

获取预约房间参与者。
abstract fun getScheduledAttendees(
roomID: String,
cursor: String?,
completion: ListResultCompletionHandler<RoomUser>?
)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
cursor
String?
分页游标。
completion
ListResultCompletionHandler<RoomUser>?
完成回调。

scheduleRoom

预约房间。
abstract fun scheduleRoom(roomID: String, options: ScheduleRoomOptions, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
options
预约选项。
completion
CompletionHandler?
完成回调。

updateScheduledRoom

更新预约房间。
abstract fun updateScheduledRoom(
roomID: String,
options: ScheduleRoomOptions,
modifyFlagList: List<ScheduleRoomOptions.ModifyFlag>,
completion: CompletionHandler?
)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
options
预约选项。
modifyFlagList
List<ScheduleRoomOptions.ModifyFlag>
修改标志。
completion
CompletionHandler?
完成回调。

addScheduledAttendees

添加预约参与者。
abstract fun addScheduledAttendees(roomID: String, userIDList: List<String>, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
userIDList
List<String>
用户 ID 列表。
completion
CompletionHandler?
完成回调。

removeScheduledAttendees

移除预约参与者。
abstract fun removeScheduledAttendees(roomID: String, userIDList: List<String>, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
userIDList
List<String>
用户 ID 列表。
completion
CompletionHandler?
完成回调。

cancelScheduledRoom

取消预约房间。
abstract fun cancelScheduledRoom(roomID: String, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
completion
CompletionHandler?
完成回调。

即时房间操作

createAndJoinRoom

创建并加入房间。
abstract fun createAndJoinRoom(roomID: String, roomType: RoomType, options: CreateRoomOptions, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
roomType
房间类型(标准房间或网络研讨会)。
options
创建选项。
completion
CompletionHandler?
完成回调。

joinRoom

加入房间。
abstract fun joinRoom(roomID: String, roomType: RoomType, password: String? = "", completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
roomType
房间类型(标准房间或网络研讨会)。
password
String?
房间密码。
completion
CompletionHandler?
完成回调。

leaveRoom

离开房间。
abstract fun leaveRoom(completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
completion
CompletionHandler?
完成回调。

endRoom

结束房间。
abstract fun endRoom(completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
completion
CompletionHandler?
完成回调。

updateRoomInfo

更新房间信息。
abstract fun updateRoomInfo(
roomID: String,
options: UpdateRoomOptions,
modifyFlagList: List<UpdateRoomOptions.ModifyFlag>,
completion: CompletionHandler?
)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
options
更新选项。
modifyFlagList
List<UpdateRoomOptions.ModifyFlag>
修改标志。
completion
CompletionHandler?
完成回调。

getRoomInfo

获取房间信息。
abstract fun getRoomInfo(roomID: String, completion: GetRoomInfoCompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
completion
完成回调。

房间呼叫操作

getPendingCalls

获取待处理的呼叫列表。
abstract fun getPendingCalls(
roomID: String,
cursor: String?,
completion: ListResultCompletionHandler<RoomCall>?
)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
cursor
String?
分页游标。
completion
ListResultCompletionHandler<RoomCall>?
完成回调。

callUserToRoom

呼叫用户加入房间。
abstract fun callUserToRoom(
roomID: String,
userIDList: List<String>,
timeout: Int = 0,
extensionInfo: String? = null,
completion: CallUserToRoomCompletionHandler?
)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
userIDList
List<String>
用户 ID 列表。
timeout
Int
超时时间(单位:秒)。
extensionInfo
String?
扩展信息。
completion
完成回调。

cancelCall

取消呼叫。
abstract fun cancelCall(roomID: String, userIDList: List<String>, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
userIDList
List<String>
用户 ID 列表。
completion
CompletionHandler?
完成回调。

acceptCall

接受呼叫。
abstract fun acceptCall(roomID: String, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
completion
CompletionHandler?
完成回调。

rejectCall

拒绝呼叫。
abstract fun rejectCall(roomID: String, reason: CallRejectionReason, completion: CompletionHandler?)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
roomID
String
房间 ID。
reason
拒绝原因。
completion
CompletionHandler?
完成回调。

录制操作

startRecording

开始云端录制。
abstract fun startRecording(options: StartRecordingOptions = StartRecordingOptions(), completion: CompletionHandler?)
仅 Owner 和 Admin 有权限调用。
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
options
录制选项,预留扩展。
completion
CompletionHandler?
完成回调。

stopRecording

停止云端录制。
abstract fun stopRecording(completion: CompletionHandler?)
仅 Owner 和 Admin 有权限调用。
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
completion
CompletionHandler?
完成回调。

数据结构

RoomType

房间类型。
枚举值
说明
STANDARD
1
标准房间。
WEBINAR
2
网络研讨会。

RoomStatus

房间状态。
枚举值
说明
SCHEDULED
1
已预约。
RUNNING
2
进行中。

RoomCallStatus

房间呼叫状态。
枚举值
说明
NONE
0
无呼叫。
CALLING
1
呼叫中。
TIMEOUT
2
呼叫超时。
REJECTED
3
呼叫被拒绝。

RoomCallResult

呼叫用户加入房间的结果。
枚举值
说明
SUCCESS
0
呼叫成功。
ALREADY_IN_CALLING
1
用户已在呼叫中。
ALREADY_IN_ROOM
2
用户已在房间中。

CallRejectionReason

呼叫拒绝原因。
枚举值
说明
REJECTED
0
用户主动拒绝。
IN_OTHER_ROOM
1
用户在其他房间中。

RecordingStatus

录制状态。
枚举值
说明
NONE
0
未录制。
RECORDING
1
录制中。

RecordingStopReason

录制停止原因。
枚举值
说明
STOPPED_BY_USER
0
用户主动停止。
ROOM_DISMISSED
1
房间已解散。
MAX_DURATION_REACHED
2
已达到最大录制时长。
STORAGE_LIMIT_REACHED
3
已达到存储空间上限。

RecordingError

录制相关错误码。
枚举值
说明
NO_ERROR
0
操作成功。
NO_PERMISSION
1
调用者不是 Owner / Admin。
FEATURE_NOT_ENABLED
2
控制台未开启云端录制功能。
STORAGE_NOT_CONFIGURED
3
未配置录制存储(COS / VOD)。
SERVICE_UNAVAILABLE
4
RoomKit / TRTC 录制服务暂时不可用。
UNKNOWN_ERROR
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
Long
录制开始时间戳。

RoomInfo

房间信息。
属性
类型
说明
roomID
String
房间 ID。
roomName
String
房间名称。
roomOwner
房间所有者。
roomType
房间类型。
participantCount
Int
参与者数量。
audienceCount
Int
观众数量(适用于网络研讨会模式)。
createTime
Long
创建时间。
roomStatus
房间状态。
scheduledStartTime
Long
预约开始时间。
scheduledEndTime
Long
预约结束时间。
startReminderInSeconds
Int
开始前提醒秒数。
scheduleAttendees
List<RoomUser>
预约参与者列表。
password
String?
房间密码。
isAllMicrophoneDisabled
Boolean
是否禁用所有麦克风。
isAllCameraDisabled
Boolean
是否禁用所有摄像头。
isAllMessageDisabled
Boolean
是否禁用所有消息。
isAllScreenShareDisabled
Boolean
是否禁用所有屏幕共享。
recordingInfo
录制信息。

ScheduleRoomOptions

预约房间选项。
属性
类型
说明
roomName
String
房间名称。
password
String
房间密码。
scheduleStartTime
Long
预约开始时间。
scheduleEndTime
Long
预约结束时间。
reminderSecondsBeforeStart
Int
开始前提醒秒数。
scheduleAttendees
List<String>
预约参与者 ID 列表。
isAllMicrophoneDisabled
Boolean
是否禁用所有麦克风。
isAllCameraDisabled
Boolean
是否禁用所有摄像头。
isAllScreenShareDisabled
Boolean
是否禁用所有屏幕共享。
isAllMessageDisabled
Boolean
是否禁用所有消息。

CreateRoomOptions

创建房间选项。
属性
类型
说明
roomName
String
房间名称。
password
String
房间密码。
isAllMicrophoneDisabled
Boolean
是否禁用所有麦克风。
isAllCameraDisabled
Boolean
是否禁用所有摄像头。
isAllScreenShareDisabled
Boolean
是否禁用所有屏幕共享。
isAllMessageDisabled
Boolean
是否禁用所有消息。

UpdateRoomOptions

更新房间选项。
属性
类型
说明
roomName
String
房间名称。
password
String
房间密码。

StartRecordingOptions

开始录制选项。

RoomCall

房间呼叫信息。
属性
类型
说明
caller
呼叫者信息。
callee
被呼叫者信息。
status
呼叫状态。

RoomState

RoomStore 对外提供的房间相关状态数据。
属性
类型
说明
scheduledRoomList
StateFlow<List<RoomInfo>>
预约房间列表。
scheduledRoomListCursor
StateFlow<String>
预约房间列表游标。
currentRoom
StateFlow<RoomInfo?>
当前房间信息。

CallUserToRoomCompletionHandler

呼叫用户加入房间完成回调。
方法
onSuccess: 成功回调。
fun onSuccess(result: Map<String, RoomCallResult>)
参数名
类型
说明
result
Map<String, RoomCallResult>
呼叫结果映射。
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
错误描述。