Skip to content

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