- 文档首页
实时音视频
互动白板
构建白板应用
Android
Android
前提条件
- 支持 Android API Level 17 及以上版本的设备。
- 支持的设备架构为 arm64 或 armv7a。
集成 SDK
【推荐】Maven 方式
- 在根目录下的 build.gradle 文件中,配置 maven 仓库地址,如下所示:
maven { url "https://artifact.bytedance.com/repository/Volcengine/" }
- 为模块配置构建配置。在 app/build.gradle 文件中添加配置和依赖。可以根据实际需要指定 SDK 和 gson 的版本。
implementation 'com.volcengine:VolcEngineWhiteboard:1.5.1'
implementation 'com.google.code.gson:gson:2.8.5'
离线方式
- 在 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>() {
public void onSuccess(WhiteBoardRoomManager whiteBoardRoomManager) {
public void onError(String errorCode) {
- appid 为你申请的应用 ID,详见 开通服务。
- onSuccess 回调创建的 WhiteBoardRoomManager 对象。
3. 加入白板房间
- 调用 joinRoom 加入白板房间。如果当前房间没有白板,SDK 将自动创建白板。
- 白板服务在当前用户加入白板房间后开始计费,直到该用户调用 leaveRoom 退出房间后停止计费。建议在即将使用白板前创建白板实例。并结束使用后及时销毁白板实例。
- roomEventHandler 可以监听房间创建、人数、以及白板创建事件。
- onSuccess: 加入房间成功并返回当前房间对象 。
说明
- 白板房间 roomID 不能与 RTC 或 RTS 房间的 roomID 相同。以免影响白板房间和 RTC 房间内回调提醒相互影响。建议为白板房间名加上 whiteboard_ 前缀。
- 白板用户 userID 不能与 RTC 或 RTS 的 userID 相同。
whiteBoardRoomManager.joinRoom(roomID, userID, token, null, roomEventHandler, new OnResult<WhiteBoardRoom>() {
public void onSuccess(WhiteBoardRoom whiteBoardRoom) {
public void onError(String errorCode) {
public void onCurrentWhiteBoardChanged(String userId, int activeBoardId, WhiteBoard whiteBoard) {
4. 使用白板
public void onCreateWhiteBoard(WhiteBoard whiteboard, int elapsed) {
if (whiteboard == null) return;
whiteboard.setEventHandler(boardEventHandler);
whiteboard.setEditType(editType);
whiteboard.setWritable(true);
5. 结束使用白板
在结束白板使用时,释放资源的步骤如下。
whiteboardRoom.leaveRoom();
whiteboardRoomManager.destroyWhiteBoardRoom(whiteboardRoom);
除了用户主动结束使用之外,在监听到以下错误时,你也需要调用上述接口,执行离房操作。
private final IWhiteBoardRoomEventHandler roomEventHandler = new IWhiteBoardRoomEventHandler() {
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() {
public void onError(String errCode, String message) {
if (Objects.equals(errCode, "KICKED_OUT") || Objects.equals(errCode, "DUPLICATE_LOGIN") || Objects.equals(errCode, "INVALID_TOKEN")) {
if (whiteboardRoom != null) {
whiteboardRoom.leaveRoom();
whiteboardRoomManager.destroyWhiteBoardRoom(whiteboardRoom);
whiteboardRoomManager = null;
WhiteBoardRoomManager.destroy();
最近更新时间:2026.08.06 10:34:20