You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
构建白板应用
Android
复制全文
下载 pdf
Android
前提条件​
  • 支持 Android API Level 17 及以上版本的设备。​
  • 请确保你的项目已设置有效的开发者签名。​
  • 支持的设备架构为 arm64 或 armv7a。​
集成 SDK​
【推荐】Maven 方式​
  1. 在根目录下的 build.gradle 文件中,配置 maven 仓库地址,如下所示:​
​
allprojects {​
repositories {​
...​
maven { url "https://artifact.bytedance.com/repository/Volcengine/" }​
​
}​
}​
​
  1. 为模块配置构建配置。在 app/build.gradle 文件中添加配置和依赖。可以根据实际需要指定 SDK 和 gson 的版本。​
​
dependencies {​
...​
implementation 'com.volcengine:VolcEngineWhiteboard:1.5.1'​
implementation 'com.google.code.gson:gson:2.8.5'​
​
}​
​
离线方式​
  1. 将工程视图修改为 Project 模式,下载 VolcEngineWhiteboard ,复制粘贴到 app/libs/ 目录下。​
​图片​​
  1. 在 app 模块的 build.gradle 文件中,增加如下 dependencies,引入 libs 目录下的 aar。​
​
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])​
​
实现功能​
基础白板使用 API 时序图​
​图片​​
1. 调用前置 API​
绑定设备 ID,方便定位和排查问题。​
​
WhiteBoardRoomManager.setDeviceID(deviceID); ​
​
2. 创建白板实例​
调用 create,创建 WhiteBoardRoomManager 来创建和管理 WhiteBoardRoom。​
​
WhiteBoardRoomManager.create(context, appId, viewGroup, new OnResult<WhiteBoardRoomManager>() {​
@Override​
public void onSuccess(WhiteBoardRoomManager whiteBoardRoomManager) {​
​
}​
​
@Override​
public void onError(String errorCode) {​
}​
});​
​
  • viewGroup 为承载白板的父 View。​
  • onSuccess 回调创建的 WhiteBoardRoomManager 对象。​
  • onError 回调创建失败错误信息。​
3. 加入白板房间​
  1. 加入 WhiteBoardRoom​
  • 调用 joinRoom 加入白板房间。如果当前房间没有白板,SDK 将自动创建白板。​
  • 白板服务在当前用户加入白板房间后开始计费,直到该用户调用 leaveRoom 退出房间后停止计费。建议在即将使用白板前创建白板实例。并结束使用后及时销毁白板实例。​
  • roomEventHandler 可以监听房间创建、人数、以及白板创建事件。​
  • onSuccess: 加入房间成功并返回当前房间对象 。​
  • onError:回调进房失败错误信息。​
说明​
  • 白板房间 roomID 不能与 RTC 或 RTS 房间的 roomID 相同。以免影响白板房间和 RTC 房间内回调提醒相互影响。建议为白板房间名加上 whiteboard_ 前缀。​
  • 白板用户 userID 不能与 RTC 或 RTS 的 userID 相同。​
  • 参考 使用 Token 完成鉴权 获取 Token。Token 有效时长应大于单次白板互动时长。例如, 24 小时。​
​
whiteBoardRoomManager.joinRoom(roomID, userID, token, null, roomEventHandler, new OnResult<WhiteBoardRoom>() {​
@Override​
public void onSuccess(WhiteBoardRoom whiteBoardRoom) {​
​
}​
​
@Override​
public void onError(String errorCode) {​
​
}​
});​
​
  1. 获取白板。​
  • 加入房间后,你可以通过 IWhiteBoardRoomEventHandler 的 onCurrentWhiteBoardChanged 回调获取并保存当前活跃的白板 ID 和信息。​
​
@Override​
public void onCurrentWhiteBoardChanged(String userId, int activeBoardId, WhiteBoard whiteBoard) {​
}​
​
如果房间内白板数量为 0,将自动创建白板并触发 onCreateWhiteBoard。通过本回调,你可以获取到白板对象。​
4. 使用白板​
获取白板对象 WhiteBoard 后,你可以通过接口中的方法操作该对象。举例如下:​
  1. 监听白板对象的 IWhiteBoardEventHandler,感知页面的创建和状态变化。​
​
@Override​
public void onCreateWhiteBoard(WhiteBoard whiteboard, int elapsed) {​
if (whiteboard == null) return;​
whiteboard.setEventHandler(boardEventHandler);​
}​
​
  1. 选择编辑模式后。触摸白板容器可以使用编辑功能,详见 EditType。​
​
whiteboard.setEditType(editType);​
whiteboard.setWritable(true);​
​
5. 结束使用白板​
在结束白板使用时,释放资源的步骤如下。​
  1. 离开房间和销毁房间。​
​
whiteboardRoom.leaveRoom();​
whiteboardRoomManager.destroyWhiteBoardRoom(whiteboardRoom);​
​
除了用户主动结束使用之外,在监听到以下错误时,你也需要调用上述接口,执行离房操作。​
​
private final IWhiteBoardRoomEventHandler roomEventHandler = new IWhiteBoardRoomEventHandler() {​
@Override​
public void onError(String errCode, String message) {​
if (Objects.equals(errCode, "KICKED_OUT") || Objects.equals(errCode, "DUPLICATE_LOGIN") || Objects.equals(errCode, "INVALID_TOKEN")) {​
// 退出房间逻辑​
}​
}​
};​
​
private final IWhiteBoardEventHandler boardEventHandler = new IWhiteBoardEventHandler() {​
@Override​
public void onError(String errCode, String message) {​
if (Objects.equals(errCode, "KICKED_OUT") || Objects.equals(errCode, "DUPLICATE_LOGIN") || Objects.equals(errCode, "INVALID_TOKEN")) {​
// 退出房间逻辑​
}​
}​
};​
​
  1. 销毁引擎,释放资源。​
​
public void release() {​
if (whiteboardRoom != null) {​
whiteboardRoom.leaveRoom();​
whiteboardRoomManager.destroyWhiteBoardRoom(whiteboardRoom);​
whiteboardRoom = null;​
}​
whiteboardRoomManager = null;​
WhiteBoardRoomManager.destroy();​
}​
​
​
最近更新时间:2026.08.06 10:34:20
这个页面对您有帮助吗?
有用
有用
无用
无用