Web
前提条件
- 开发环境要求:具备互联网连接,搭载 Intel 第二代酷睿处理器或更佳性能的处理器。
集成SDK
npm 方式
- 通过包管理工具 npm 下载 SDK。不指定版本表示下载最新版本。
npm i @volcengine/white-board-manage
import Board from '@volcengine/white-board-manage';
离线方式
// ${you_path} 为解压后的 lib 文件夹所在本地路径
import Board from '${you_path}/lib/white-board-manage';
实现功能
基础白板使用 API 时序图
1. 初始化应用
2. 加入白板房间
如果服务端还没有该房间,会自动创建一个房间。
如果当前房间没有白板,SDK 将自动创建白板。
白板服务在当前用户加入白板房间后开始计费,直到该用户调用 leaveRoom 退出房间后停止计费。建议在即将使用白板前创建白板实例。并结束使用后及时销毁白板实例。
const whiteBoardRoom = await Board.joinRoom({
- 白板房间 roomId 不能与 RTC 或 RTS 房间的 roomId 相同。以免影响白板房间和 RTC 房间内回调提醒相互影响。建议为白板房间名加上 whiteboard_ 前缀。
- 白板用户 userId 不能与 RTC 或 RTS 的 userId 相同。
根据实际应用需要,在初始化 WhiteBoard 后监听想要关注的事件回调。例如,在进房成功后获取白板对象信息、白板改变、回放状态变化等。
whiteBoardRoom.on(WhiteBoardRoomEventsTypes.onError, function (res) {
if (res.errorCode === ErrorCode.DUPLICATE_LOGIN) {
message.error('您已被踢出房间');
WhiteBoardRoomEventsTypes.onCurrentWhiteBoardChanged,
async ({ userId, boardId, whiteBoard }) => {
whiteBoardRoom.on(WhiteBoardRoomEventsTypes.onPlaybackStateChanged,({state, data}) => {});
3. 使用白板
编辑工具
pointer // 选取图元 ToolMode.POINTER
pencilBrush //涂鸦画笔 ToolMode.PENCIL_BRUSH
textbox // 文本 ToolMode.TEXT
circle // 圆 ToolMode.CIRCLE
line // 直线 ToolMode.LINE
rect // 矩形 ToolMode.RECT
arrow // 箭头 ToolMode.ARROW
eraser // 橡皮擦 ToolMode.ERASER
zoom // 平移 ToolMode.ZOOM
whiteBoard.setEditType(key);
import { IWhiteBoard, ToolMode } from '@volcengine/white-board-manage'
const [whiteBoard, setWhiteBoard] = useState<IWhiteBoard>()
whiteBoardRoom.on(WhiteBoardRoomEventsTypes.onCurrentWhiteBoardChanged,({ userId, boardId, whiteBoard }) => {
setWhiteBoard(whiteBoard);
onClick={()=>whiteBoard.setEditType(ToolMode.PENCIL_BRUSH)}
页面管理
- 调用 whiteBoard.createPages 新增白板页,成功后将收到 onCreatePagesProgress 回调和 onPageCountChanged 回调。
const onCreatePagesEvent: IWhiteBoardEvents['onCreatePagesProgress'] = e => {
if (e.progress === 100) {
- 调用 whiteBoard.removePages 删除白板页,成功后将收到 onRemovePages 回调和 onPageCountChanged 回调和 onPageIndexChanged 回调。
- 调用 whiteBoard.flipPage 跳转到指定白板页,成功后收到 onPageIndexChanged 回调。
4. 结束使用白板
调用 leaveRoom离开房间。调用后将同时销毁白板房间实例。你将无法继续调用 WhiteboardRoom 中的方法。 const leaveRoom = () => {
最近更新时间:2026.08.06 10:31:35