你可以通过阅读密钥说明了解更多 Token 相关。
支持 Android API Level 17 及以上版本的设备。
请确保你的项目已设置有效的开发者签名。
build.gradle 文件中,配置 maven 仓库地址,如下所示:allprojects {
repositories {
...
maven { url "https://artifact.bytedance.com/repository/Volcengine/" }
}
}
groovyapp/build.gradle 文件中添加配置和依赖。dependencies {
...
implementation 'com.volcengine:VolcEngineWhiteboard:1.3.0'
}
groovyapp/libs/ 目录下。
build.gradle 文件中,增加如下 dependencies,引入 libs 目录下的 aar。implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
groovy
setEnv 指定为正式环境。WhiteBoardRoomManager.setEnv(WhiteBoardDefine.Env.PRODUCT);
javaWhiteBoardRoomManager.setDeviceID(deviceID);
javaWhiteBoardRoomManager 来创建和管理 WhiteBoardRoom。WhiteBoardRoomManager whiteboardRoomManager = WhiteBoardRoomManager.create(getBaseContext(), appid, roomManagerEventHandler);
javaappid 为你申请的应用 ID,详见 开通服务。IWhiteBordRoomManagerEventHandler 回调可以监控错误码和警告码。createWhiteBoardRoom 创建 WhiteBoardRoom。WhiteBoardRoom whiteboardRoom = whiteboardRoomManager.createWhiteBoardRoom(roomID, userID, token, roomEventHandler);
javawhiteboard_ 前缀。roomEventHandler 可以监听房间创建、人数、以及白板创建事件。joinRoom 加入白板房间。whiteboardRoom.joinRoom();
java白板服务在当前用户加入白板房间后开始计费,直到该用户调用 leaveRoom 退出房间后停止计费。建议在即将使用白板前创建白板实例。并结束使用后及时销毁白板实例。
2. 成功加入房间后,将触发 onJoinRoomResult。 你可以在此回调中处理首次加入房间,重连加入房间的事件。
public void onJoinRoomResult(String roomID, String userID, int errCode, boolean isRejoin){}
javaIWhiteBoardRoomEventHandler 的 onGetAllBoardInfo 回调所有白板的信息、当前活跃的白板 ID、当前房间是否活跃,请及时保存需要的信息。WhiteBoardRoom 的 createWhiteBoard 方法创建白板。@Override
public void onGetAllBoardInfo(List<BoardInfo> boardInfos, int activeBoardId, boolean isRoomActive) {
super.onGetAllBoardInfo(boardInfos, activeBoardId, isRoomActive);
this.isRoomActive = isRoomActive;
runOnUiThread(() -> {
if (boardInfos == null || boardInfos.isEmpty()) {
if (whiteboardRoom != null) {
whiteboardRoom.createWhiteBoard(888, null, null, "default");
}
}
});
}
javapublic void onCreateWhiteBoard(WhiteBoard whiteBoard, int elapsed){}
javawhiteboard.setEventHandler(boardEventHandler);
javabindToWindow 绑定白板视图容器。whiteboard.setEditMode(WhiteBoardDefine.EditMode.EDIT_ALL);//画板是否可以编辑
whiteboard.bindToWindow(new WindowConfig(viewGroup));
javapublic void onCreateWhiteBoard(WhiteBoard whiteboard, int elapsed) {
runOnUnitThread(() -> {
if (activity = null || activity.isFinishing())
return;
whiteboard = whiteBoard;
whiteboard.setEventhandler(boardEventHandler);
whiteboard.setEditMode(boardToolBar.getCurrentEditMode());
whiteboard.bindToWindow(new WindowConfig(videGroup)); //viewGroup 是你需要传入的 UI 视图容器,例如FrameLayout
Toast.makeText(activity, text: "创建白板成功", Toast.LENGTH_SHORT).show();
});
}
javaonWhiteBoardAttachedToWindow 回调。在该回调中实现需要在绑定视图后处理的逻辑。public void onWhiteBoardAttachedToWindow() {}
java选择编辑模式后。触摸白板容器可以使用编辑功能,详见 EditType。
whiteboard.setEditType(editType);
java在结束白板使用时,释放资源的步骤如下。
unBindFromWindow 解绑白板视图。whiteboard.unBindFromWindow();
java成功调用 unBindFromWindow 后会触发 [onWhiteBoardDetachedToWindow](131850#onwhiteboarddetachedtowindow) 解绑白板视图回调,在该回调中实现解绑视图后处理的逻辑。
public void onWhiteBoardDetachedToWindow() {}
javawhiteboardRoom.destroyWhiteBoard(whiteboard);
java whiteboardRoom.leaveRoom();
whiteboardRoomManager.destroyWhiteBoardRoom(whiteboardRoom);
javaif (whiteboard != null) {
whiteboard.unBindFromWindow();
whiteboardRoom.destroyWhiteBoard(whiteboard);
whiteboard = null;
}
if (whiteboardRoom != null) {
whiteboardRoom.leaveRoom();
whiteboardRoomManager.destroyWhiteBoardRoom(whiteboardRoom);
whiteboardRoom = null;
}
whiteboardRoomManager = null;
WhiteBoardRoomManager.destroy();
java