Pano开发者中心
  • 文档中心
  • 下载中心

›白板

新手入门

  • 简介
  • 名词解释
  • 账号注册指南
  • 创建第一个应用

规则说明

  • Channel ID命名规则
  • 权限控制
  • 计费说明
  • 最长通话时长说明
  • 每月一万分钟免费说明
  • 布局参数说明

场景方案

    教育行业

    • 1vN互动小班课
    • 互动直播大班课

快速接入

  • 简介
  • 音视频

    • Windows (C++)
    • Android (Java)
    • iOS (Objective-C)
    • Web
    • Electron

    白板

    • Android (Java)
    • iOS (Objective-C)
    • Web

高级功能

  • 简介
  • 音视频

    • 屏幕共享
    • 状态回调
    • 音量指示
    • 混音/伴音
    • 混响
    • 耳返
    • 美颜
    • 音视频数据回调
    • 音视频外部采集
    • 收发多路视频
    • 设备诊断
    • 反馈

    白板

    • Android (Java)
    • iOS (Objective-C)
    • Web

操作实践

  • 切换大小屏

RESTful API

  • 基本格式
  • 获取Token
  • 频道管理
  • 云端录制
  • CDN推流
  • 文档转码
  • 服务端消息通知API

SDK API

  • SDK接口说明
  • Windows (C++)
  • Android (Java)
  • iOS/macOS (Objective-C)
  • Web SDK(IE)
  • Web SDK

    • PanoRtc 参考
    • RtcEngine
    • RtcWhiteboard
    • Constants

更新记录

  • 简介
  • SDK

    • Windows
    • macOS
    • iOS
    • Android
    • Electron
    • Flutter
    • React Native
    • Web
    • Web SDK(IE)
    • Web Whiteboard

    Demo-PanoVideoCall

    • Windows、Mac和Web
    • iOS
    • Android

    Demo-PanoAudioChat

    • iOS
    • Android

帮助

  • FAQ
  • 更多帮助

Android (Java)

本文结合部分 SDK API ,介绍如何快速接入白板功能。

如需查看完整 SDK API 列表,请点击左侧导航查看:
SDK API - Android (Java) - com.pano.rtc.api.RtcWhiteboard。

导入SDK

请 点此查看 如何导入SDK。

获取白板

使用白板前,请先 初始化 RtcEngine 实例,再通过其 getWhiteboard 方法获取白板控制接口。

mWhiteboard = mRtcEngine.getWhiteboard();

注册通知

通过 RtcWhiteboard 实例的 setCallback 方法注册白板回调,用来接收白板事件通知。

mWhiteboard.setCallback(new RtcWhiteboard.Callback() {
    @Override
    public void onCreateDoc(Constants.QResult result, String fileId) {
        // 创建白板文件通知
    }

    @Override
    public void onContentUpdated() {
        // 白板内容更新通知
    }

    @Override
    public void onMessage(long userId, byte[] msg) {
        // 收到白板消息的通知
    }

    ...
})

完整的回调方法列表与介绍,请查看 RtcWhiteboard.Callback 接口。

加入频道

请 点此查看 如何加入频道。对于加入频道时的 RtcChannelConfig.serviceFlags 参数:

  • 如果需要同时使用音视频和白板功能,请将其配置为:
    kChannelServiceMedia | kChannelServiceWhiteboard;
  • 如果仅使用白板功能,请将其配置为 kChannelServiceWhiteboard。

打开白板

加入白板频道成功后,通过 RtcWhiteboard 实例的 open 方法打开白板。

RtcWbView wbView = findViewById(R.id.wbSurfaceView);
wbView.setZOrderMediaOverlay(true);
mWhiteboard.open(wbView);

工具条

SDK 内部已实现白板工具绘制和数据同步,但是由于不同的开发者有不同的 UI 设计,因此 SDK 不提供涉及 UI 交互的白板工具条。
请开发者自行设计白板工具条,来结合调用 SDK 接口以执行相应的白板操作。

全局属性

白板颜色

背景色

通过 RtcWhiteboard 实例的 setBackgroundColor 方法设置白板背景色。

mWhiteboard.setBackgroundColor(0.75f, 0.75f, 0.75f, 1);

白板背景色仅在本地显示,不会同步给其他用户。因此每位用户的白板背景色可以不同。

前景色

通过 RtcWhiteboard 实例的 setForegroundColor 方法设置白板前景色。
前景色适用于文字、线条和边框的颜色。

mWhiteboard.setForegroundColor(0.15f, 0.25f, 0.35f, 1);

填充色

通过 RtcWhiteboard 实例的 setFillColor 方法设置白板填充色。
填充色适用于封闭图形(如椭圆和矩形)的填充颜色。

mWhiteboard.setFillColor(0.5f, 0.5f, 0.5f, 1);

适用于文字工具的全局属性

  • 通过 RtcWhiteboard 实例的 setFontSize 方法设置字体大小。
mWhiteboard.setFontSize(36);
  • 通过 RtcWhiteboard 实例的 setFontStyle 方法设置字体样式(粗体、斜体)。
mWhiteboard.setFontStyle(Constants.WBFontStyle.BoldItalic);
// 可选值:Normal, Bold, Italic, BoldItalic

适用于图形工具的全局属性

  • 通过 RtcWhiteboard 实例的 setLineWidth 方法设置线条和边框的宽度。
mWhiteboard.setLineWidth(10);
  • 通过 RtcWhiteboard 实例的 setFillType 方法设置封闭图形填充方式。
mWhiteboard.setFillType(Constants.WBFillType.Color);
// 可选值:None 不填充、Color 填充颜色

常用工具

设置工具类型

通过 RtcWhiteboard 实例的 setToolType 方法设置工具类型。

mWhiteboard.setToolType(Constants.WBToolType.None); // 空,不响应任何操作
mWhiteboard.setToolType(Constants.WBToolType.Text); // 文本工具
mWhiteboard.setToolType(Constants.WBToolType.Path); // 画笔工具
mWhiteboard.setToolType(Constants.WBToolType.Line); // 直线工具
mWhiteboard.setToolType(Constants.WBToolType.Arrow); // 箭头工具
mWhiteboard.setToolType(Constants.WBToolType.Rect); // 矩形工具
mWhiteboard.setToolType(Constants.WBToolType.Ellipse); // 椭圆工具
mWhiteboard.setToolType(Constants.WBToolType.Select); // 选择工具,可以触摸移动图形
mWhiteboard.setToolType(Constants.WBToolType.Eraser); // 橡皮檫工具,用于删除图形
// 刷子工具本质上是对图层区域做透明处理,所以开启刷子功能时,不要移动和缩放图形
// 刷子工具,可以结合 setLineWidth 方法设置擦除宽度
mWhiteboard.setToolType(Constants.WBToolType.Brush); // 刷子工具,用于擦除图形的局部

请在加入白板频道成功后再进行白板操作。

撤销与重做

通过 RtcWhiteboard 实例的 undo 方法撤消上一次操作,redo 方法重做上一次被撤销的操作。

mWhiteboard.undo();

图片操作

设置背景图片缩放模式

通过 RtcWhiteboard 实例的 setBackgroundImageScalingMode 方法设置背景图片缩放模式。

// WBImageScalingMode 可选值:Fit/AutoFill/FillWidth/FillHeight
mWhiteboard.setBackgroundImageScalingMode(Constants.WBImageScalingMode.AutoFill);

设置背景图片

通过 RtcWhiteboard 实例的 setBackgroundImage (String imageUrl) 方法设置当前页的背景图片,setBackgroundImage (String imageUrl, int pageNo) 设置指定页的背景图片。

mWhiteboard.setBackgroundImage(imageUrl);

导入背景图片列表

通过 RtcWhiteboard 实例的 addBackgroundImages 方法导入背景图片列表到当前白板文档。

List<String> urls = new ArrayList<String>();
urls.add("...url1...");
urls.add("...url2...");
mWhiteboard.addBackgroundImages(urls);

画板操作

缩放

通过 RtcWhiteboard 实例的 getCurrentScaleFactor 方法获取当前白板视图的缩放比例,setCurrentScaleFactor 方法设置缩放比例。

System.out.println(mWhiteboard.getCurrentScaleFactor());
mWhiteboard.setCurrentScaleFactor(2.0f); // 取值范围[0.1, 5.0]

UI 交互

通过 RtcWhiteboard 实例的 enableUIResponse 方法设置白板是否响应 UI 交互事件。
默认启用,如果传入 false 则白板不再响应任何 UI 交互,既不能移动和缩放,也不能使用任何工具。

mWhiteboard.enableUIResponse(false);

清除画板内容

通过 RtcWhiteboard 实例的 clearContents 方法清除画板内容。

  • 此方法需要管理员权限。
  • curPage 参数表示是否仅限清除当前页面。
  • type 参数表示清除的内容类型。
    • 为 All 时清除所有内容
    • 为 Draws 时清除图形
    • 为 BackgroundImage 时清除背景图片
mWhiteboard.clearContents(false, Constants.WBClearType.All); // 管理员清除所有页面的所有内容

通过 RtcWhiteboard 实例的 clearUserContents 方法清除特定用户的画板内容。

  • 需要管理员权限才能清除其他用户添加的内容。
  • curPage 参数表示是否仅限清除当前页面。
  • type 参数表示清除的内容类型。
    • 为 All 时清除所有内容
    • 为 Draws 时清除图形
    • 为 BackgroundImage 时清除背景图片
mWhiteboard.clearUserContents(12345, false, Constants.WBClearType.Draws); // 管理员清除特定用户添加的图形

关闭白板

通过 RtcWhiteboard 实例的 close 方法关闭白板(仅关闭当前用户的白板 UI)。

mWhiteboard.close();

高级功能

请 点此查看 Android 白板的高级功能介绍。

SDK API 指南

更多白板 SDK 接口,请 点此查看 API 列表。

示例代码

为方便开发者了解丰富的接口使用方式,我们还提供示例代码,请 体验参考。

Last updated on 1/5/2021
← ElectroniOS (Objective-C) →
  • 导入SDK
  • 获取白板
  • 注册通知
  • 加入频道
  • 打开白板
  • 工具条
  • 全局属性
    • 白板颜色
    • 适用于文字工具的全局属性
    • 适用于图形工具的全局属性
  • 常用工具
    • 设置工具类型
    • 撤销与重做
  • 图片操作
    • 设置背景图片缩放模式
    • 设置背景图片
    • 导入背景图片列表
  • 画板操作
    • 缩放
    • UI 交互
    • 清除画板内容
  • 关闭白板
  • 高级功能
  • SDK API 指南
  • 示例代码
浙ICP备20002645号 Copyright ©2020 拍乐云. All Rights Reserved