互动白板

更新时间: 2025/09/10 09:57:08

您可以通过 NERoom 的互动白板,实现互动涂鸦、实时同步、文档共享等功能,满足在线教育、互动娱乐、金融面签、视频会议等低延时高互动场景的需求。

功能介绍

NERoom 互动白板支持以下核心功能:

  • 多种绘画工具:铅笔、直线、矩形、圆形、文本、激光笔等多种绘画工具
  • 文档共享:支持上传、展示 PPT、Word、PDF 等多种格式文档
  • 实时同步:所有用户操作实时同步,低延迟高一致性
  • 多人协作:支持多人同时在白板上绘制和编辑
  • 权限控制:可设置白板的可绘制权限,控制用户操作权限

互动白板的应用场景包括:

  • 在线教育:用于线上语言培训、K12 学科辅导等课堂教学场景,教师可借助涂鸦、文本、直线、激光笔等基础教具,边演示课件边勾画要点。
  • 视频会议:用于视频会议、在线培训等企业协同场景,满足主讲实时演示讲解、多方协同交流的需求。
  • 互动娱乐:用于你画我猜、互动涂鸦等娱乐场景,满足更多有趣的游戏互动玩法。
  • 金融面签:用于视频面签、远程见证等金融场景,满足面签双方远程办理业务、进行签名确认的需求。

前提条件

创建房间时,需在 NECreateRoomOptions 中设置 enableWhiteboard=true,具体操作方法请参考 创建房间

配置步骤

  1. 开始共享白板。

    Kotlinfun startWhiteboardShare(callback: NECallback<Unit>)
    
  2. 设置白板视图。

    Kotlinfun setupWhiteboardCanvas(view: NEWhiteboardView)
    
  3. 设置白板是否可绘制。

    Kotlinfun setEnableDraw(enable: true/false, callback: NECallback<Unit>)
    

    enable 的参数说明如下:

    • true:允许绘制。
    • false:不允许绘制。
  4. 停止共享白板。

    Kotlinfun stopWhiteboardShare(callback: NECallback<Unit>)
    
  5. 重置白板视图。

    Kotlinfun resetWhiteboardCanvas(view: NEWhiteboardView?)
    
  6. 关闭某成员的白板共享。

    KotlinstopMemberWhiteboardShare(userUuid: String, callback: NECallback<Unit>)
    

示例代码

  1. 实现共享白板功能的示例代码如下:

    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");
            }
        });
    }
    
  2. 实现设置白板视图功能的示例代码如下:

    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);
    }
    
  3. 实现重置白板视图功能的示例代码如下:

    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);
        }
    }
    
  4. 实现设置白板是否可绘制功能的示例代码如下:

    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");
                }
            });
    }
    
  5. 实现停止共享白板功能的示例代码如下:

    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");
                            }
                        });
                    }
    
  6. 实现监听白板状态变更功能的示例代码如下:

    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");
                    }
            }
        });
    }
    
  7. 实现关闭某成员的白板共享的示例代码如下:

    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 白板共享状态变更回调,当房间内白板共享状态变化时触发。
此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 前提条件
  • 配置步骤
  • 示例代码
  • API 参考