SDK 概览
@tencent-classroom/sdk 是腾讯云实时互动-教育版的客户端无 UI SDK,帮助你在 Web 应用中快速实现互动课堂功能,包括实时音视频、互动白板、即时通讯、课堂管理等。
特性
- 纯 TypeScript — 类型安全,编辑器自动补全
- 零框架依赖 — 可在 Vue / React / Angular / 原生 JS 等任何技术栈中使用
- 扁平化 API — 唯一入口
TencentClassroom,60+ 个方法直接调用,无需获取子模块 - 响应式状态 — 通过
classroom.state.xxx$.subscribe()订阅任意状态变化 - 统一错误处理 — 所有方法返回
TResult<T>,永不 throw,通过result.ok判断 - 内置国际化 — 支持中/英/日/韩/越/阿/印/西/繁 9 种语言
- 多角色支持 — 老师、学生、助教、巡课,各角色行为自动适配
快速体验
typescript
import { TencentClassroom, TEvent, StreamType } from '@tencent-classroom/sdk';
// 1. 创建实例
const classroom = new TencentClassroom({ language: 'zh-CN', debug: true });
// 2. 初始化
await classroom.init();
// 3. 加入课堂
await classroom.joinClass({ classId: 123456, userId: 'user_001', token: 'your-token' });
// 4. 开启音视频
await classroom.startCamera(document.getElementById('local-video')!);
await classroom.startMicrophone();
// 5. 渲染远端用户视频
classroom.bindRemoteView('teacher_001', document.getElementById('remote-video')!, StreamType.Camera);
// 6. 订阅状态变化
classroom.state.classStatus$.subscribe(status => {
console.log('课堂状态:', status); // 'notStarted' | 'started' | 'ended'
});
// 7. 离开课堂
await classroom.leaveClass();
await classroom.destroy();核心能力
| 能力 | 说明 |
|---|---|
| 音视频 | 摄像头/麦克风/屏幕共享,远端流自动渲染,RTC/Live 智能切换 |
| 互动消息 | 群聊、私聊、图片/文件消息、消息撤回、未读管理 |
| 互动白板 | 多人协作白板、PPT/PDF/视频课件、涂鸦工具 |
| 课堂管理 | 开课/下课、全员静音、布局切换、举手连麦、循环上台 |
| 成员管理 | 花名册、上台/下台、踢人、禁言、白板授权 |
| 答题器 | 发起答题、提交答案、统计结果 |
| 媒体播放 | 视频点播、背景音乐(同步播放) |
| 字幕转写 | 实时语音转文字 |
开始接入
新手推荐:从 快速接入指南 开始,5 分钟跑通完整流程。
按需阅读
| 我想… | 去哪里 |
|---|---|
| 快速跑通 SDK | 快速接入 |
| 了解音视频推拉流 | 音视频指南 |
| 实现聊天功能 | IM 聊天指南 |
| 接入互动白板 | 白板指南 |
| 支持多语言 | 国际化 |
| 理解错误处理机制 | 错误处理 |
| 查看完整方法列表 | API 参考 - 生命周期 |
| 查看全局状态 | API 参考 - 全局状态 |
| 查看事件列表 | API 参考 - 全局事件 |
| 查看枚举与类型 | API 参考 - 枚举与类型 |
环境要求
- Node.js >= 16
- Chrome 85+ / Edge 86+ / Safari 15+ / Firefox 80+
- 音视频功能需浏览器支持 WebRTC
安装
bash
pnpm add @tencent-classroom/sdk
# 或
npm install @tencent-classroom/sdk