全局状态
ClassroomState 提供所有响应式状态(以 $ 结尾),通过 classroom.state.xxx$.subscribe() 订阅。
使用方式
typescript
// 订阅课堂状态变化
classroom.state.classStatus$.subscribe(status => {
console.log('课堂状态:', status);
});
// 同步读取当前值
const currentStatus = classroom.state.classStatus$.get();全部状态
| Signal | 类型 | 说明 |
|---|---|---|
askStageList$ | ReadonlySignal<MemberInfo[]> | 申请上台列表(老师端,来自 askStage 信令的申请队列)。 |
askStageStatus$ | ReadonlySignal<AskStageStatus> | 自己的申请上台状态(askStage 流程,学生端使用)。 |
autoPlayFailed$ | ReadonlySignal<boolean> | 浏览器自动播放策略是否阻止了播放(true=被阻止,需用户交互后恢复)。 |
beautyEnabled$ | ReadonlySignal<boolean> | 美颜是否已启用(任意一个参数 > 0 时为 true)。 |
beautyParam$ | ReadonlySignal<TBeautyParam> | 当前美颜参数(whiten=美白 / lift=窄脸 / eye=大眼,0-100)。 |
boardPermission$ | ReadonlySignal<boolean> | 白板权限(true=有权操作白板) |
boardReady$ | ReadonlySignal<boolean> | 白板是否就绪(可操作)。 |
boardStatus$ | ReadonlySignal<BoardStatus> | 白板详细状态(BoardStatus 枚举)。 |
boardToolExpand$ | ReadonlySignal<boolean> | 白板工具栏展开/折叠状态(由 UIKit 控制)。 |
cameraDeviceStatus$ | ReadonlySignal<DeviceStatus> | 摄像头设备状态(DeviceStatus 枚举) |
cameraList$ | ReadonlySignal<TDeviceInfo[]> | 摄像头设备列表 |
cameraPermission$ | ReadonlySignal<boolean> | 摄像头权限(true=可开摄像头) |
chatPermission$ | ReadonlySignal<boolean> | 聊天权限(true=可发消息) |
classDuration$ | ReadonlySignal<number> | 课堂已持续时长(秒,服务端时间校准后)。 |
classDurationCalibrated$ | ReadonlySignal<number> | 服务端时间校准后的课堂已持续时长(秒),与 classDuration$ 相同但命名更明确。 |
classId$ | ReadonlySignal<number> | 当前课堂 ID |
classInfo$ | ReadonlySignal<ClassInfo | null> | 课堂完整信息(进房后有值,离房后为 null)。 |
classInfoReady$ | ReadonlySignal<boolean> | 课堂信息是否已加载就绪 |
classLayout$ | ReadonlySignal<ClassLayout> | 当前课堂布局类型。 |
classStatus$ | ReadonlySignal<ClassStatus> | 课堂状态:'notStarted'=未开始 |
classVisible$ | ReadonlySignal<boolean> | 课堂页面是否在前台可见(基于 Page Visibility API)。 |
config$ | ReadonlySignal<Readonly<ClassroomConfig>> | 当前 SDK 配置(通过 setConfig() 更新后自动同步,可订阅变化)。 |
currentCameraId$ | ReadonlySignal<string> | 当前选中摄像头设备 ID |
currentMicId$ | ReadonlySignal<string> | 当前选中麦克风设备 ID |
currentQuizId$ | ReadonlySignal<string> | 当前进行中的答题 ID(答题器 active 时有值) |
currentRole$ | ReadonlySignal<Role> | 当前用户角色(进房后写入)。 |
currentSpeakerId$ | ReadonlySignal<string> | 当前选中扬声器设备 ID |
deviceOrientation$ | ReadonlySignal<"portrait" | "landscape"> | 设备方向(移动端) |
enableStage$ | ReadonlySignal<boolean> | 举手连麦功能是否开启 |
globalNetworkStatus$ | ReadonlySignal<GlobalNetworkStatus> | 各模块网络状态聚合(TRTC |
handUpList$ | ReadonlySignal<MemberInfo[]> | 举手列表(学生申请上台的队列,老师端使用)。 |
handUpTips$ | ReadonlySignal<boolean> | 举手提示浮层是否显示(举手时触发,3 秒后自动隐藏)。 |
imAvailable$ | ReadonlySignal<boolean> | IM 是否已连接并可用 |
inviteStageStatus$ | ReadonlySignal<"idle" | "rejected" | "inviting" | "invited" | "accepted"> | 教师端发起的邀请上台状态(inviteStage 流程)。 |
joinedClass$ | ReadonlySignal<boolean> | 是否已成功进房(joinClass 完成后为 true,leaveClass 后重置为 false)。 |
joinProgress$ | ReadonlySignal<JoinProgress> | 进房流程阶段枚举(JoinProgress),可用于驱动进房 Loading UI。 |
joinQuitTips$ | ReadonlySignal<boolean> | 成员进出课堂提示是否显示(由 ImModule 触发,UIKit 消费)。 |
likeCount$ | ReadonlySignal<number> | 累计点赞数 |
marqueeConfig$ | ReadonlySignal<MarqueeConfig | null> | 当前跑马灯配置(null=未设置)。 |
memberCount$ | ReadonlySignal<number> | 在线成员总数 |
memberList$ | ReadonlySignal<MemberInfo[]> | 成员列表(memberMap 的数组视图) |
memberListOfflineCount$ | ReadonlySignal<number> | 离线成员数量 |
memberListPageCount$ | ReadonlySignal<number> | 已加载的成员列表分页数 |
memberListTotalCount$ | ReadonlySignal<number> | 课堂总成员数(含离线) |
memberMap$ | ReadonlySignal<Map<string, MemberInfo>> | 全体成员 Map(核心数据源,key=userId,value=MemberInfo)。 |
messageFilter$ | ReadonlySignal<MessageFilterType> | 消息列表过滤类型(控制 messageList$ 中显示哪些消息)。 |
messageList$ | ReadonlySignal<Message[]> | 聊天消息列表(进房后包含历史消息,实时追加新消息)。 |
messageUnreadCount$ | ReadonlySignal<number> | 未读消息数(调用 markAllMessagesAsRead() 或 markMessageAsRead() 后归零)。 |
micDeviceStatus$ | ReadonlySignal<DeviceStatus> | 麦克风设备状态(DeviceStatus 枚举) |
micList$ | ReadonlySignal<TDeviceInfo[]> | 麦克风设备列表 |
micPermission$ | ReadonlySignal<boolean> | 麦克风权限(true=可开麦) |
musicPlayStatus$ | ReadonlySignal<MusicPlayStatus> | 背景音乐播放状态。 |
muteAll$ | ReadonlySignal<boolean> | 是否已开启全员音频静音(true=老师已全体静音) |
muteVideoAll$ | ReadonlySignal<boolean> | 是否已开启全员禁视频(true=老师已全体禁摄像头) |
myHandUpStatus$ | ReadonlySignal<boolean> | 自己是否已举手 |
networkQuality$ | ReadonlySignal<NetworkQuality> | 上下行网络质量(uplink/downlink,0-5,越小越好)。 |
networkQualityLevel$ | ReadonlySignal<NetworkQualityLevel> | 综合网络质量等级(NetworkQualityLevel 枚举,0=未知, 1=极佳, 5=极差)。 |
oneToOneStudentVideoHidden$ | ReadonlySignal<boolean> | 1v1 课堂中学生视频是否被老师隐藏。 |
packageFeatures$ | ReadonlySignal<PackageFeatureConfig> | 当前套餐功能配置(maxMembers / enableBeauty / enableSubtitle 等)。 |
packageType$ | ReadonlySignal<PackageType> | 当前套餐类型(PackageType 枚举:0=Default...5=Enterprise)。 |
quickReplyWords$ | ReadonlySignal<string[]> | 快捷回复词列表(来自课堂配置) |
quizAnswerCount$ | ReadonlySignal<number> | 当前题目已提交答案数(老师端实时统计) |
quizStatus$ | ReadonlySignal<"idle" | "active" | "closed"> | 答题器状态:'idle'=无进行中 |
schoolId$ | ReadonlySignal<number> | 学校 ID |
schoolInfo$ | ReadonlySignal<SchoolInfo | null> | 学校信息(进房后写入,包含 sdkAppId / 套餐 / 功能白名单等)。 |
schoolInfoReady$ | ReadonlySignal<boolean> | 学校信息是否已加载就绪 |
screenSharePermission$ | ReadonlySignal<number> | 屏幕共享权限(数值类型,不是 boolean)。 |
screenShareStatus$ | ReadonlySignal<ScreenShareStatus> | 屏幕共享状态。 |
sdkAppId$ | ReadonlySignal<number> | |
silenceMode$ | ReadonlySignal<SilenceMode> | 当前聊天禁言模式。 |
speakerList$ | ReadonlySignal<TDeviceInfo[]> | 扬声器设备列表 |
stageCount$ | ReadonlySignal<number> | 台上成员数量 |
stageList$ | ReadonlySignal<MemberInfo[]> | 当前台上成员列表 |
stageLoopEnabled$ | ReadonlySignal<boolean> | 循环上台是否开启 |
stageStatus$ | ReadonlySignal<StageStatus> | 当前用户上台状态。 |
streamList$ | ReadonlySignal<LiveStreamInfo[]> | 当前课堂快直播流列表(只读)。 |
subCameraEnabled$ | ReadonlySignal<boolean> | 辅助摄像头(移动端第二路视频)是否已启用 |
subtitleEnabled$ | ReadonlySignal<boolean> | 字幕转写功能是否开启 |
subtitleTranscriptionUserIds$ | ReadonlySignal<string[]> | 正在进行字幕转写的用户 ID 列表。 |
taskList$ | ReadonlySignal<TaskInfo[]> | 当前课堂业务任务列表(答题器/计时器等,由 ClassModule 写入)。 |
userId$ | ReadonlySignal<string> | 当前用户 ID(joinClass 时写入) |
videoPublishUserList$ | ReadonlySignal<string[]> | 当前正在推视频流的用户 ID 列表(TRTC 上报)。 |
virtualBgConfig$ | ReadonlySignal<TVirtualBackgroundParam | null> | 当前虚拟背景配置,未开启时为 null。 |
vodCurrentTime$ | ReadonlySignal<number> | VOD 当前播放进度(秒,200ms 节流)。 |
vodDuration$ | ReadonlySignal<number> | VOD 总时长(秒) |
vodPlayStatus$ | ReadonlySignal<VodPlayStatus> | VOD 视频播放状态。 |
waitStageUserId$ | ReadonlySignal<string> | 最近一次上台的用户 ID(用于 UI 动画) |
watermarkConfig$ | ReadonlySignal<WatermarkConfig | null> | 当前水印配置(null=未设置)。 |