互动白板
更新时间: 2025/09/10 09:57:08
您可以通过 NERoom 的互动白板,实现互动涂鸦、实时同步、文档共享等功能,满足在线教育、互动娱乐、金融面签、视频会议等低延时高互动场景的需求。
功能介绍
NERoom 互动白板支持以下核心功能:
- 多种绘画工具:铅笔、直线、矩形、圆形、文本、激光笔等多种绘画工具
- 文档共享:支持上传、展示 PPT、Word、PDF 等多种格式文档
- 实时同步:所有用户操作实时同步,低延迟高一致性
- 多人协作:支持多人同时在白板上绘制和编辑
- 权限控制:可设置白板的可绘制权限,控制用户操作权限
互动白板的应用场景包括:
- 在线教育:用于线上语言培训、K12 学科辅导等课堂教学场景,教师可借助涂鸦、文本、直线、激光笔等基础教具,边演示课件边勾画要点。
- 视频会议:用于视频会议、在线培训等企业协同场景,满足主讲实时演示讲解、多方协同交流的需求。
- 互动娱乐:用于你画我猜、互动涂鸦等娱乐场景,满足更多有趣的游戏互动玩法。
- 金融面签:用于视频面签、远程见证等金融场景,满足面签双方远程办理业务、进行签名确认的需求。
前提条件
创建房间时,需在 NECreateRoomOptions 中设置 enableWhiteboard=true,具体操作方法请参考 创建房间。
配置步骤
-
开始共享白板。
Kotlinfun startWhiteboardShare(callback: NECallback<Unit>) -
设置白板视图。
Kotlinfun setupWhiteboardCanvas(view: NEWhiteboardView) -
设置白板是否可绘制。
Kotlinfun setEnableDraw(enable: true/false, callback: NECallback<Unit>)enable的参数说明如下:- true:允许绘制。
- false:不允许绘制。
-
停止共享白板。
Kotlinfun stopWhiteboardShare(callback: NECallback<Unit>) -
重置白板视图。
Kotlinfun resetWhiteboardCanvas(view: NEWhiteboardView?) -
关闭某成员的白板共享。
KotlinstopMemberWhiteboardShare(userUuid: String, callback: NECallback<Unit>)
示例代码
-
实现共享白板功能的示例代码如下:
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class); NERoomContext roomContext = roomService.getRoomContext(roomUuid); if (roomContext!=null){ roomContext.getWhiteboardController().startWhiteboardShare(new NECallback2<Unit>() { @Override public void onSuccess(@Nullable Unit unit) { super.onSuccess(unit); Log.d(TAG,"success"); } @Override public void onError(int code, @Nullable String message) { super.onError(code, message); Log.d(TAG,"error"); } }); } -
实现设置白板视图功能的示例代码如下:
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class); NERoomContext roomContext = roomService.getRoomContext(roomUuid); if (roomContext!=null){ NEWhiteboardView whiteboardView = new NEWhiteboardView(this); whiteboardContainer.removeAllViews(); whiteboardContainer.addView(whiteboardView); whiteboardController.setupWhiteboardCanvas(whiteboardView); roomContext.getWhiteboardController().setupWhiteboardCanvas(whiteboardView); } -
实现重置白板视图功能的示例代码如下:
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class); NERoomContext roomContext = roomService.getRoomContext(roomUuid); if (roomContext!=null){ if (whiteboardContainer.getChildCount()> 0) { NEWhiteboardView whiteboardView = (NEWhiteboardView) whiteboardContainer.getChildAt(0); whiteboardController.resetWhiteboardCanvas(whiteboardView); } } -
实现设置白板是否可绘制功能的示例代码如下:
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class); NERoomContext roomContext = roomService.getRoomContext(roomUuid); if (roomContext != null) { roomContext.getWhiteboardController().setEnableDraw(true, new NECallback2<Unit>() { @Override public void onSuccess(@Nullable Unit unit) { super.onSuccess(unit); Log.d(TAG,"success"); } @Override public void onError(int code, @Nullable String message) { super.onError(code, message); Log.d(TAG,"error"); } }); } -
实现停止共享白板功能的示例代码如下:
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class); NERoomContext roomContext = roomService.getRoomContext(roomUuid); if (roomContext!=null){ roomContext.getWhiteboardController().stopWhiteboardShare(new NECallback2<Unit>() { @Override public void onSuccess(@Nullable Unit unit) { super.onSuccess(unit); Log.d(TAG,"success"); } @Override public void onError(int code, @Nullable String message) { super.onError(code, message); Log.d(TAG,"error"); } }); } -
实现监听白板状态变更功能的示例代码如下:
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class); NERoomContext roomContext = roomService.getRoomContext(roomUuid); if (roomContext!=null){ roomContext.addRoomListener(new NERoomListener() { @Override public void onMemberWhiteboardStateChanged(@NonNull NERoomMember member, boolean isSharing) { if (isSharing){ Log.d(TAG,member.getUuid()+"is sharing whiteboard"); }else{ Log.d(TAG,member.getUuid()+"stop sharing whiteboard"); } } }); } -
实现关闭某成员的白板共享的示例代码如下:
JavaNERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class); NERoomContext roomContext = roomService.getRoomContext(roomUuid); if (roomContext != null) { String userUuid = "uuid"; roomContext.getWhiteboardController().stopMemberWhiteboardShare(userUuid, new NECallback2<Unit>() { @Override public void onSuccess(@Nullable Unit unit) { Log.d(TAG,"success"); } @Override public void onError(int code, @Nullable String message) { Log.d(TAG,"error"); } }); }
API 参考
| 方法 | 功能描述 |
|---|---|
| startWhiteboardShare | 开始共享白板,成功后可以向房间内所有成员展示白板内容。 |
| stopWhiteboardShare | 停止共享白板,结束白板共享会话。 |
| setupWhiteboardCanvas | 设置白板视图,将白板控制器与UI视图关联。 |
| resetWhiteboardCanvas | 重置白板视图,清除当前视图关联。 |
| setEnableDraw | 设置白板是否可绘制,控制当前用户的绘制权限。 |
| stopMemberWhiteboardShare | 关闭指定成员的白板共享,通常由有管理权限的用户调用。 |
| onMemberWhiteboardStateChanged | 白板共享状态变更回调,当房间内白板共享状态变化时触发。 |
此文档是否对你有帮助?





