发版说明
本文提供声 Whiteboard Android SDK 的发版说明。
为了确保 Whiteboard SDK 在不同平台上提供一致的用户体验,同时允许各端以原生方式接入,Whiteboard Android SDK 通过桥接 Whiteboard Web SDK 实现,不是完全原生的 SDK。因此,Android SDK 的版本更新内容会默认包含指定 Web SDK 版本及以前的更新内容,你可以根据 Android 各版本的桥接说明,前往 Web SDK 发版说明查看包含的更新内容。
2.16.86 版
该版本于 2024 年 6 月 6 日发布。
桥接的 Web SDK 已升级至 v2.16.51。
该版本新增 prepareWhiteConnection
方法,用于提前选择连接线路以加快首次加入白板方间的连接速度。
prepareWhiteConnection
ConnectionPrepareParam
2.16.81 版
该版本于 2024 年 3 月 13 日发布。
桥接的 Web SDK 已升级至 v2.16.48。
在多窗口模式下,SDK 支持以新建窗口的方式插入 PPT 或白板插件等,它们统称为小窗应用。该版本起,Room
对象新增以下方法用于在多窗口模式下管理小窗应用:
addApp
:插入小窗应用,并返回应用 ID。closeApp
:关闭指定小窗应用的窗口。focusApp
:切换聚焦窗口为指定小窗应用的窗口。queryApp
:查询指定小窗应用的信息。queryAllApps
:查询当前所有小窗应用的信息。
MemberState
新增以下属性用于自定义白板工具:
textColor
:文本工具中文字的颜色。pencilEraserSize
:铅笔橡皮工具的尺寸。
PPT 渲染配置项 WhiteSdkConfiguration.SlideAppOptions
新增了以下属性:
minFPS
:设置 PPT 动画的最小帧率。maxFPS
:设置 PPT 动画的最大帧率。resolution
:设置 PPT 渲染分辨倍率。maxResolutionLevel
:设置 PPT 最大分辨率。bgColor
:设置 PPT 动画的背景色。forceCanvas
:是否强制使用 2D 渲染,默认不开启。enableGlobalClick
:是否可以通过点击 PPT 画面执行下一步功能,默认开启。
RoomParams
新增 optimizeOptions
属性,用于设置白板绘制的性能优化策略。性能优化的方式包括以下三种:
- 调整白板绘制的刷新间隔:刷新间隔越低,笔迹显示越流畅,性能开销越大;刷新间隔越高,笔迹越卡,性能消耗越少。
- 使用单画布绘制:白板默认使用两个画布交替绘制以避免在部分设备上绘制时可能出现的画面闪烁现象,使用单个画布绘制可以避免重绘,降低性能消耗。
- 使用浮动画布:书写场景下,启用单画布绘制后,会根据绘制位置生成一个大小约为 256 x 256 px 的浮动画布,后续绘制不超过该画布的范围时,同步绘制笔迹的范围会限定在这个浮动画布中,而不是同步整个画布,从而降低性能消耗。
该版本还新增了以下特性:
- 新增
updateText
方法, 用于更新调用insertText
插入的文本。 - 新增
setSyncMode
方法, 用于立即处理白板事件,绘制画笔。 - 新增
setDisableInitialStateCallback
方法, 用于禁止加入房间后的全量状态回调。
该版本修复了以下问题:
WhiteWindowParams.fullscreen
开启后,第二次打开 App 没有全屏。WindowParams.fullscreen
开启后偶现状态栏闪烁。- 路径动画跳页后无法恢复到原位。
- 菱形填充会充满图形。
- 重连后,SDK 内置光标消失。
- 使用淡入淡出动画时偶现闪烁。
- SDK 内置光标在修改
isWritable
后消失。
addApp
closeApp
focusApp
queryApp
queryAllApps
WindowAppSyncAttrs
MemberState
新增textColor
pencilEraserSize
SlideAppOptions
新增minFPS
maxFPS
resolution
maxResolutionLevel
bgColor
forceCanvas
enableGlobalClick
setSyncMode
updateText
setDisableInitialStateCallback
insertText
2.16.59 版
该版本于 2023 年 8 月 31 日发布。
桥接的 Web SDK 已升级至 v2.16.42。
该版本废弃了白板数据中心原有的英国伦敦数据中心(Region.gb-lon
),并新增了欧洲法兰克福数据中心(Region.eu
),服务区覆盖欧洲。如果你在之前版本中设置了 Region.gb-lon
,请在升级到该版本后改用 Region.eu
,并在控制台-互动白板服务配置中启用该数据中心。
该版本废新增 getSlideVolume
和 updateSlideVolume
方法用于获取和更新 PPT 内音频的音量。
WhiteSdkConfiguration
新增 enableSlideInterrupterAPI
配置项,用于开启 PPT 资源 URL 拦截替换功能。该功能可用于加密用户上传的 PPT 资源,保护用户隐私。
开启后,通过调用 WhiteSdk.setSlideListener(SlideListener)
实现 PPT 文件 URL 的拦截替换功能。
WhiteSdkConfiguration
新增 whiteSlideAppParams
配置项用于 @netless/app-slide 渲染相关的显示配置。当前支持配置 WhiteSlideAppParams.showRenderError
,用于配置显示/隐藏渲染错误提示。
WhiteSdkConfiguration
新增 apiHosts
配置项, 用于配置白板的 API 服务器域名列表,可用于实现服务器代理。
RoomParams
和 PlayerConfiguration
分别新增 modulesOrigin
配置项,用于配置白板请求模块(modules)数据的地址。
新增 dispatchDocsEvent
方法,用于向插入白板的 PDF/PPTX 文档发送事件,实现控制文档翻页、页面跳转和幻灯片动画播放。
该版本优化了使用新版文档转换服务转换 PPT 文件并插入至白板的流程。
你可以使用新增的 createSlideApp
方法即可构建 WindowAppParam
对象,该对象包含 ProjectorAttributes
和 ProjectorOptions
, 对应打开文档时传入的参数,详见 addApp
。
新增 WindowParams.fullscreen
属性, 用于控制窗口是否全屏。
该版本修复了新版 Android Studio 无法预览布局的问题。
getSlideVolumeWithCompletionHandler
updateSlideVolume
WhiteSdkConfiguration
中新增:enableSlideInterrupterAPI
whiteSlideAppParams
apiHosts
setSlideDelegate
RoomParams
新增modulesOrigin
PlayerConfiguration
新增modulesOrigin
dispatchDocsEvent
WindowDocsEvent
createSlideApp
ProjectorAttributes
ProjectorOptions
WindowAppParam
WindowParams.fullscreen
2.16.42 版
该版本于 2022 年 12 月 2 日发布。
桥接的 Web SDK 已升级至 v2.16.37。
该版本为以下白板教具添加了新特性:
- 铅笔工具:支持画虚线。你需要设置
room.memberState.dottedLine
为true
开启该功能。 - 文字工具:支持直接选择并编辑文字。你需要设置
room.memberState.textCanSelectText
为true
以开启该功能。
此外,该版本还新增了铅笔橡皮工具,用于擦除局部铅笔笔迹。
该版本新增浮动条功能,选中任意白板元素即可弹出浮动条,方便用户快速编辑指定白板元素。例如,选中笔迹可以快速删除笔迹、调整位置、更变笔迹颜色等,选中文字可以快速删除文字、调整文字样式、修改字体等。你可以通过调用 setUsingFloatBar
方法启用浮动条功能。
该版本新增了 removePage
方法用于删除指定白板页。
WhiteSdk
类新增 requestSlideLog
方法,用于客户端获取 PPT 日志,方便排查 PPT 相关问题。
为方便监听 Player
的状态变化,该版本在 Player
类中新增 addPlayerListener
和 removePlayerListener
方法,用于添加和删除白板回放回调。
该版本优化了 PPT 音频播放控制,现在可以通过调用 AudioMixerBridge
接口下新增的 pauseAudioMixing
和 resumeAudioMixing
方法,实现暂停和恢复播放动态 PPT 中的音频和混音。
该版本修复了如下问题:
- 多窗口模式下
sceneState
变化时收不到回调。 - 重连后,白板 app 可能无法正确创建。
- 创建 app 时,无法正确同步白板初始宽度和高度。
- 切换只读/读写状态时可能导致
mainView
的disableCameraTransform
配置丢失。
MemberState
类新增属性dottedLine
和textCanSelectText
Appliance
类新增属性PENCIL_ERASER
removePage
pauseAudioMixing
resumeAudioMixing
addPlayerListener
removePlayerListener
setUsingFloatBar
requestSlideLog
2.16.21 版
该版本于 2022 年 7 月 8 日发布。
自 2.16.0 版本起,声网仅更新 netless-io:whiteboard-android
GitHub 仓库,不再维护 duty-os:white-sdk-android
GitHub 仓库。使用 JitPack 集成 2.16.0 版本之后的 SDK 时,你需要将 /Gradle Scripts/build.gradle(Module: .app)
文件中 dependencies
下的 implementation
字段修改为:
dependencies {
implementation 'com.github.netless-io:whiteboard-android:<version>'
}
详见获取 SDK。
该版本新增 insertText
方法,支持在指定位置插入文字。
该版本在 WhiteSdkConfiguration
类中新增 setDisableNewPencilStroke
方法,用于开启或关闭新铅笔的笔锋效果。该方法中 disableNewPencilStrokeSDK
参数的默认值为 true
,当你调用 setDisableNewPencil(false)
开启新铅笔后,SDK 立即开启笔锋效果。如果需要关闭新铅笔的笔锋效果,可以设置 setDisableNewPencilStroke(true)
。
同时,该版本在 WhiteSdkConfiguration
类中新增 isDisableNewPencilStroke
方法,用于查询笔锋效果的开启状态。
该版本在 Displayer
类中新增 getScene
方法,支持使用场景路径获取指定场景的信息。
自该版本起,声网互动白板服务集成并支持声网全链路加速(FPA)服务。集成声网 Whiteboard SDK 后,你只需调用 setUseNativeWebSocket(true)
,即可在互动白板应用中开启全链路加速服务,提升传输质量。
该版本进行了如下改进:
- 为新铅笔工具添加补间动画。当用户使用新铅笔书写时,SDK 会自动在关键帧之间插入帧,使远端用户看到的笔迹绘制过程更加流畅。要体验该优化,请确保你已调用
setDisableNewPencil(false)
开启新铅笔工具。 - 优化了在 Android 浏览器上的书写性能。
- 优化了弱网环境下的重连机制,减少不必要的重连。
该版本修复了如下问题:
- 放缩、移动视角后,偶现画面出现偏移、重影。
- 偶现动态 PPT 在断线重连后无法翻页。
- 刚加入房间时,如果白板上已经有内容,可能显示不全。
- SDK 断线重连后可能会发生内存泄漏。
- 反复调用
setWritable
时可能会发生错误。 - 用户切换为只读模式,再切换回读写模式并写写画画时,远端用户看到该用户的光标是固定的。
insertText
setDisableNewPencilStroke
isDisableNewPencilStroke
getScene
2.15.24 版
该版本于 2022 年 1 月 21 日发布。
该版本进行了如下改进:
- 更新封装的
white-web-sdk
至 2.15.16 版。 - 优化
getSceneSnapshotImage
和getScenePreviewImage
方法,确保在截图中正常显示场景中插入的图片。
2.15.0 版
该版本于 2021 年 11 月 16 日发布。
为方便管理房间内的用户,该版本在 RoomParams
中新增 uid
参数,用于设置用户的唯一标识符(UID)。
如果你将 SDK 升级到 v2.15.0 或之后版本,为保证你的业务功能不受影响,调用 joinRoom
时必须在 RoomParams
传入字符串格式的 uid
,长度不超过 1024 字节,并确保同一房间内每个用户的 uid
唯一。详见加入实时房间。
该版本新增支持转换和展示如下 PowerPoint(PPT)特性:
- 动作按钮
- 母版动画
该版本进行了如下改进:
- 更新封装的
white-web-sdk
至 2.15.1 版。 - 进一步优化书写体验。
该版本修复了在白板中展示动态 PPT 时遇到的如下问题:
- 偶现的图片位置偏移
- 部分样式读取失败导致的白屏
- 部分文字旋转角度和颜色错误
- 带有动画效果的元素可能不出现
- 文字的动画效果表现不正确
- RoomParams [1/3]
- RoomParams [2/3]
- RoomParams [3/3]
2.14.3 版
该版本于 2021 年 10 月 21 日发布。
自该版本起,互动白板 Android SDK 支持的最低平台要求变更如下:
- Android 4.4 变更为 Android 5.0
- Android SDK API level 19 变更为 Android SDK API level 21
该版本进行了如下优化:
- 更新封装的
white-web-sdk
至 2.14.5 版。 - 持续优化书写性能。
- 优化书写笔迹的形态。
- 提高
onPhaseChanged
回调的准确性。 - 隐藏动态 PPT 母版中不应该显示的元素。
该版本修复了如下问题:
- 切换到抓手工具后,无法切换回光标。
- 书写过程中偶现的笔迹突然消失。
- 书写时偶现的笔迹带有不自然的水滴状笔锋。
- 手动缩放文本框后再编辑文字,文本框和文字复原到原来的大小。
- 在部分设备上窗口尺寸发生变化后,视角出现异常。
- 快速拖动橡皮擦时,橡皮擦的图标放大效果和快速删除功能失效。
- 偶现的动态 PPT 中多个音频文件同时播放。
- 动态 PPT 返回上一页后动画显示异常。
- 动态 PPT 中带动画的文本框偶现镜像翻转。
2.13.22 版
该版本于 2021 年 8 月 20 日发布。
该版本新增如下特性:
- 在
CommonCallback
接口中新增onLogger
回调,用于获取 SDK 输出的本地调试日志。 - 为完善动态文档转换功能,该版本新增支持转换和展示如下 PowerPoint (PPT) 特性:
- 对文本按段落添加动画。
- 对文本添加的动画可逐字或逐词显示。
- 所有的表格预设样式。
- 小于 12 px 的文字。
该版本更新封装的 white-web-sdk
至 2.13.17 版。
该版本修复了如下问题:
onLogger
和onMessage
回调不生效。- 偶现的加入房间时,房间一直卡在
connecting
状态。 - 断线重连后,部分用户的光标消失。
- 断线重连后,部分插件的状态出现混乱。
- 抓手工具不受设置的视角边界的限制。
- 在某些高分辨率的设备上,当用户处于跟随模式时,视角的中心点出现轻微偏移。
- 在白板中展示动态 PPT 时遇到的如下问题:
- 段间距显示不正确
- 文本分栏无效
- 使用幻灯片背景填充形状时显示不正确
- 悬挂缩进异常
- 动画回退后显示异常
- 文字编号错误
- 转换后公式显示不全
- 部分换行不正确
- 从右往左书写的文字(如阿拉伯文)显示异常
2.13.17 版
该版本于 2021 年 7 月 23 日发布。
为完善动态文档转换功能,该版本新增支持转换和展示如下 PowerPoint(PPT)特性:
- 反转路径方向动画效果
- 纵向文本框
- Microsoft 公式编辑器 3.0
- 母版隐藏背景图形
- 编辑图片颜色
- 部分图片效果:
- 金属框架
- 柔化边缘矩形
- 双框架,黑色
- 厚重哑光,黑色
- 简单框架,黑色
- 中等复杂框架,黑色
- 居中矩形阴影
- 柔化边缘椭圆
- 金属圆角矩形
- 金属椭圆
该版本进行了如下优化:
- 更新封装的
white-web-sdk
至 2.13.11 版。 - 更新封装的
@netless/video-js-plugin
至 0.3.3 版本。 - 降低了播放动态 PPT 动画时占用的 CPU。
- 提升了在白板上书写绘画的流畅度。
- 为提升时间同步的准确性,将
setTimeDelay
方法中delaySec
参数的数据类型由 Integer 改为 Double。 - 打印的日志中包含场景变更信息。
- 在
PptPage
中新增preview
参数,支持在白板场景中展示动态 PPT 预览图。
该版本修复了如下问题:
- 调整视角时偶现的白板清晰度异常。
- 偶现的用户进入房间后无法画出第一笔线。
- 偶现的
refreshViewSize
调用不生效。 - 在白板中展示动态 PPT 时遇到的如下问题:
- 动画未按设置的顺序播放。
- 动画播放后未按设置隐藏。
- 表格高度显示异常。
- 无法显示占位符中插入图片。
- 部分形状绘制错误。
- 文字缩进错误。
- 无法点击动画触发器。
- 图片透明度过大。
2.13.4 版
该版本于 2021 年 6 月 15 日发布。
该版本更新 white-web-sdk
至 2.13.4。
2.13.2 版
该版本于 2021 年 6 月 11 日发布。
该版本更新 white-web-sdk
至 2.13.3。
2.13.1 版
该版本于 2021 年 6 月 11 日发布。
该版本更新 white-web-sdk
至 2.13.2。
该版本修复了 disableDeviceInputs
设为 true
时,用户可能仍然可以操作 iframe 插件的问题。
2.12.36 版
该版本于 2021 年 6 月 8 日发布。
该版本修复的问题如下:
主播模式的用户在使用点选工具(Clicker
)时,如果对 HTML5 课件进行缩放,会导致跟随模式的用户看到的课件内容不完整。
2.12.35 版
该版本于 2021 年 6 月 7 日发布。
该版本更新 @netless/cursor-tool
至 0.1.0,并且更新 @netless/iframe-bridge
至 2.1.2。
2.12.34 版
该版本于 2021 年 6 月 4 日发布。
该版本更新 white-web-sdk
至 2.12.21。
2.12.33 版
该版本于 2021 年 6 月 3 日发布。
该版本更新 @netless/video-js-plugin
至 0.1.5。
2.12.32 版
该版本于 2021 年 6 月 2 日发布。
该版本修复了 video-js-plugin
插件在白板上无法显示的问题。
2.12.31 版
该版本于 2021 年 6 月 1 日发布。
该版本更新 @netless/video-js-plugin
至 0.1.3,修复了 video-js-plugin 和低版本 Android 系统的 WebView 不兼容的问题。
2.12.30 版
该版本于 2021 年 5 月 25 日发布。
该版本更新 @netless/cursor-tool
至 0.0.9。
2.12.29 版
该版本于 2021 年 5 月 24 日发布。
该版本集成 @netless/video-js-plugin
插件,用于在 Android 端观看 Web 端白板上播放的视频。支持的视频格式包括 M3U8 等。
该版本更新 white-web-sdk
至 2.12.20。
2.12.28 版
该版本于 2021 年 5 月 20 日发布。
该版本更新 white-web-sdk
至 2.12.19。
2.12.27 版
该版本于 2021 年 5 月 17 日发布。
该版本有以下改进:
- 更新
white-web-sdk
至 2.12.18。 - 服务端排版(
useServerWrap
)由默认关闭改为默认开启。开启服务端排版后,服务端会裁剪字体包的体积,提高渲染速度。
2.12.26 版
该版本于 2021 年 5 月 13 日发布。
该版本新增以下特性:
Appliance
新增点选工具 (Clicker
),用于 H5 课件的操作和交互。MemberState
新增ShapeType
,支持设置图形工具。目前支持的图形包括三角形、菱形、五角星、对话气泡。Room
类新增syncBlockTimestamp
方法,用于设置发送白板内容的延时,保证白板内容与音视频同步。- 更新
white-web-sdk
至 2.12.17。
2.12.25 版
该版本于 2021 年 4 月 28 日发布。
该版本更新 @netless/white-audio-plugin2
和 @netless/white-video-plugin2
插件,修复了部分显示问题。
2.12.24 版
该版本于 2021 年 4 月 27 日发布。
该版本支持 @netless/white-audio-plugin2
和 @netless/white-video-plugin2
,用于在 Android 端观看 Web 端白板上播放的音频或视频。
- 更新
@netless/white-audio-plugin
至 1.2.23,修复了白板回放中音频文件的显示问题。 - 修复了
getRoomState
异步方法没有回调的问题。
2.12.22 版
该版本于 2021 年 4 月 22 日发布。
该版本更新 white-web-sdk
至 2.12.14。
2.12.21 版
该版本于 2021 年 4 月 22 日发布。
该版本有以下改进:
- 更改
RoomListener
和PlayerListener
为主线程回调。 - 更新
white-web-sdk
至 2.12.13。 - 更新
@netless/iframe-bridge
至 2.12.17,优化了白板回放的 iframe 插件逻辑。
2.12.20 版
该版本于 2021 年 4 月 17 日发布。
该版本更新 white-web-sdk
至 2.12.12。
2.12.19 版
该版本于 2021 年 4 月 14 日发布。
该版本有以下改进:
- 新增
PptParams
的构造方法,无需配置scheme
参数。 - 更新
@netless/iframe-bridge
至 2.0.14,优化了 iframe 插件。
2.12.18 版
该版本于 2021 年 4 月 12 日发布。
该版本更新 @netless/iframe-bridge
至 2.0.13,优化了消息通知。
2.12.17 版
该版本于 2021 年 4 月 12 日发布。
该版本更新 @netless/iframe-bridge
至 2.0.11,优化了 Android 端的显示问题。
2.12.16 版
该版本于 2021 年 4 月 9 日发布。
该版本更新 @netless/iframe-bridge
至 2.0.10,优化了 Android 端的显示问题。
2.12.15 版
该版本于 2021 年 4 月 10 日发布。
该版本更新 white-web-sdk
至 2.12.9。
2.12.14 版
该版本于 2021 年 4 月 9 日发布。
该版本更新 @netless/iframe-bridge
至 2.0.9,修复了 H5 课件的显示问题。
2.12.13 版
该版本于 2021 年 4 月 9 日发布。
该版本恢复了 Displayer
接口的 scaleIframeToFit
方法。
2.12.12 版
该版本于 2021 年 4 月 9 日发布。
该版本更新 @netless/iframe-bridge
至 2.0.8,修复了 H5 课件的显示问题。
2.12.11 版
该版本于 2021 年 4 月 6 日发布。
该版本更新 white-web-sdk
至 2.12.8,修复了设置跟随者模式无法立即生效的问题。
2.12.10 版
该版本于 2021 年 4 月 2 日发布。
该版本更新 white-web-sdk
至 2.12.7,优化了动态 PPT 的显示。
2.12.9 版
该版本于 2021 年 3 月 30 日发布。
该版本更新 @netless/iframe-bridge
至 2.0.7。
2.12.8 版
该版本于 2021 年 3 月 30 日发布。
该版本更新 white-web-sdk
至 2.12.6。
2.12.7 版
该版本于 2021 年 3 月 25 日发布。
该版本更新 @netless/iframe-bridge
至 2.0.5,优化白板回放时的 H5 课件展示。
2.12.6 版
该版本于 2021 年 3 月 25 日发布。
该版本在 Displayer
类中新增 scaleIframeToFit
方法,支持等比例缩放视角,以保证完整显示 H5 课件的内容。
2.12.5 版
该版本于 2021 年 3 月 25 日发布。
该版本更新 @netless/cursor-tool
至 0.0.7。
2.12.3 版
该版本于 2021 年 3 月 20 日发布。
为解决笔锋效果与 2.2.12 之前版本 SDK 不兼容的问题,该版本将 setDisableNewPencil
方法的 disableNewPencil
参数默认值由 false
改为 true
,以默认关闭笔锋效果。
为正常显示笔迹,在开启笔峰效果前,请确保该房间内的所有用户使用如下 SDK:
2.12.2 版
该版本于 2021 年 3 月 16 日发布。
为优化笔迹显示,该版本新增笔锋效果。你可以调用 setDisableNewPencil
关闭或开启笔锋效果;调用 isDisableNewPencil
获取是否开启笔锋效果。
为正常显示笔迹,在开启笔峰效果前,请确保该房间内的所有用户使用如下 SDK:
- Android SDK 2.12.2 版或之后
- iOS SDK 2.12.3 版或之后
- Web SDK 2.12.5 版或之后
- 更新
white-web-sdk
至 2.12.4 版本,优化 PPT 显示逻辑。 - 优化音视频插件在白板回放时的按钮显示。
修复 debug
模式下,实时房间异常回调导致的崩溃问题。
2.12.2 版之前
关于更多版本的发版说明,详见版本历史。
2.6.4 及之前版本已经停止维护,建议升级到最新版本。