实时互动-教育版 事件监听(Web 内核)

这篇说说腾讯云 TCIC SDK 的课堂事件监听与状态订阅方法,说明如何通过 on/off 监听成员进出、答题等事件,以及通过 subscribeState/unsubscribeState 获取课堂信息、摄像头、屏幕分享等状态变更。 事件监听:使用 TCIC.SDK.instance.on(事件名, 回调) 监听 After_Enter、Member_Join 等 20 余种事件,并支持取消监听。 状态订阅:通过 。

相关产品
实时互动-教育版 产品页,含版本规格、价格与购买入口。

一、使用场景

在实际业务需求中,你可能需要在特定事件发生时进行与业务相关的处理,例如:

·当上课正式开始时,向业务后台进行一些上报处理。

·当成员加入房间时,向成员展示弹窗。

你可以通过TCIC.SDK.instance.on(eventName, handler)监听成员进入退出等课堂事件,或者通过TCIC.SDK.instance.subscribeState(stateName, handler)监听课堂状态变更。

二、事件列表(TCIC.TMainEvent)

Event 事件
After_Enter 已加入房间。
Modify_Class 房间信息已更改。
Leave_Class 离开房间。
Kick_Out_By_Teacher 被踢出房间。
Kick_Out_By_Another 多端登录被踢出房间。
Kick_Out_By_Expire 签名过期被踢出房间。
Member_Join 成员加入房间。
Member_Exit 成员退出房间。
Member_Info_Update 成员信息更新。
Member_Hand_Up 成员举手。
Member_Hand_Up_Cancel 成员取消举手。
Question_Valid 存在可用答题。
Question_Begin 答题开始。
Question_End 答题结束。
Question_Abandon 终止答题。
Question_Close 关闭答题。
Question_Been_Answered 有学生作答。
App_Resized 应用大小变化。
Error 发生错误(影响主线流程)。
Recv_IM_Msgs 收到 IM 消息。
Recv_Custom_IM_Msg 收到自定义 IM 消息。

使用示例:

function afterEnter() => { console.debug('You have joined this room');}// 监听TCIC.SDK.instance.on(TCIC.TMainEvent.After_Enter, afterEnter);// 取消监听TCIC.SDK.instance.off(TCIC.TMainEvent.After_Enter, afterEnter);

三、状态列表(TCIC.TMainState)

Event 事件 说明
Class_Info_Ready 课堂信息已加载。 –
Joined_Class 已加入课堂。 –
Sub_Camera 辅助摄像头状态。 0:开始 2:结束
Screen_Share 屏幕分享状态。 0:分享中1:暂停中2:未开始/已结束
Video_Publish 本地视频推流是否开启。 –
Audio_Capture 本地音频采集是否开启。 –
Class_Duration 课堂持续时间。 单位秒。< 0:未到上课时间,距离上课开始的时间。= 0:到上课时间未开始上课、课堂已结束、课堂已过期。> 0:上课中,已开始上课的时间。
Member_Count 课堂当前在线成员数量。 仅学生在线数,不包含老师、助教和巡课。
Member_List_Total_Member_Count 成员总数。 包括老师,助教在内,在线和离线的成员总数。
Member_List_Offline_Member_Count 离线成员总数。 包括老师,助教在内,离线的成员总数。
Board_Permission 白板操作权限。 –
Chat_Permission 文字聊天权限。 –
Screen_Share_Permission 屏幕分享权限。 –
Hand_Up 举手状态。 –
Mute_All 全员静音状态。 –
Mute_Video_All 全员视频状态。 –
Silence_All 全员禁言状态。 –
Message_Unread_Count 未读消息。 –
HandUp_Count 举手人数。 –
Class_Status 课堂状态。 0:未开始1:已开始2:已结束3:已过期

// promiseState 可以确保当前状态满足条件的时候立即执行一次TCIC.SDK.instance.promiseState(TCIC.TMainState.Joined_Class, true).then( () => { console.debug('You have joined this room');});function listener() { console.debug('You have joined this room');}// 监听TCIC.SDK.instance.subscribeState(TCIC.TMainState.Joined_Class, listener);// 取消监听TCIC.SDK.instance.unsubscribeState(TCIC.TMainState.Joined_Class, listener);

赞 (0)
上一篇 4天前
下一篇 4天前