课堂生命周期介绍

最近更新时间:2024-07-29 16:36:31

我的收藏
说明:
阅读本章节前,请确保您已经了解 快速开始 的内容。通过前面章节的示例,可以了解到部分课堂的生命周期状态和事件,我们可以通过这些与课堂业务互动。

状态相关方法

// 设置状态值
TCIC.SDK.instance.setState(name ,val)
/**
* promiseState可以确保当前状态满足条件的时候立即执行一次。
*/
TCIC.SDK.instance.promiseState(name,val)
/**
* 获取状态值
*/
TCIC.SDK.instance.getState(name)
/**
* 示例:
* 当TCIC.TMainState.School_Info_Ready为true时,立即执行一次
*/
TCIC.SDK.instance
.promiseState(TCIC.TMainState.School_Info_Ready, true)
.then(() => {
/**
* 表示此时可以获取到学校信息
*/
console.log("DEMO:::schoolInfo:", TCIC.SDK.instance.getSchoolInfo());
});

流程状态

说明:
历史原因状态值有两类,一类挂载在 TCIC.TMainState 对象上,一类在 TCICUI.Constant 对象,具体参考 TCIC-SDK API 文档
进入课堂时,打开控制台,过滤 setState 字段可以看到状态设置时序。多刷新几次会发现状态流程是固定的,有些逻辑是在状态修改后触发,例如加载自定义js/css 文件是在学校信息获取才开始。下图是部分流程状态值说明。



下表是部分属性的说明:
含义
状态名
类型
备注
学校信息已获取
TCIC.TMainState.School_Info_Ready
Boolean
自定义 js/css 地址是从获取学校信息接口中获取,第三方业务逻辑将从这个事件后开始执行。
课堂信息已获取
TCIC.TMainState.Class_Info_Ready
Boolean
获取到课堂信息后,会处理布局和文案相关内容,所以有部分操作调用需要在 Class_Info_Ready 之前,例如关键概念文案替换
加入TRTC房间
TCIC.TMainState.Joined_TRTC
Boolean
在改状态改变后,用户才能使用 TRTC 房间相关功能,例如开启麦克风或者打开视频。
是否进行设备检测
TCICUI.Constant.TStateDeviceDetect
Boolean
需要连麦视频的用户完成设备检测才进入房间可以减少连麦异常的情况。
示例:
//屏蔽设备检测功能
TCIC.SDK.instance.setState(TCICUI.Constant.TStateDeviceDetect ,false)

课堂事件

除开状态之外,我们还提供很多课堂事件以供使用。打开课堂控制台,过滤 Tevent:: 可以观察到很多事件行为打印。



提供交互的事件方法如下:
/**
* 监听事件
*/
TCIC.SDK.instance.on(eventname, callback);
/**
* 取消监听事件
*/
TCIC.SDK.instance.off(eventname, callback);
下表是部分事件说明,事件可以在 TCIC.TMainEvent/TCIC.TIMEvent 里找到:
属性名
说明
TCIC.TMainEvent.Show_Msg_Box
当弹窗组件出现时调用,使用示例可以参考 修改下课按钮行为
TCIC.TMainEvent.Member_Join
课堂有人加入时会触发此事件。
TCIC.TIMEvent.Recv_Msg
收到消息时触发事件,可以获取消息内容。
TCIC.TIMEvent.Send_Msg
发送消息时触发事件,可以获取消息内容。

其它相关文档

更多 SDK 方法请参考 TCIC-SDK API 文档