Skip to content

全局状态

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=未设置)。