Release notes (Whiteboard)
This page provides the release notes for the Interactive Whiteboard SDK.
v2.16.86
v2.16.86 was released on August 27, 2024.
New features
Domain preselection
This version adds the prepareWhiteConnection
method to preselect an optimal access domain, which can improve the connection speed when users join a whiteboard room for the first time.
API changes
Added
prepareWhiteConnection
ConnectionPrepareParam
v2.16.81
v2.16.81 was released on June XX, 2024.
New features
Window apps management
In the multi-window mode, the SDK supports inserting the PPT or whiteboard plugin as a window. These are collectively referred to as window apps. Starting from this version, the Room
object has the following new methods for managing window apps in the multi-window mode:
addApp
: Inserts a window app and returns the app ID.closeApp
: Closes the window of the specified window app.focusApp
: Switches the focused window to the window of the specified window app.queryApp
: Queries the information of the specified window app.queryAllApps
: Queries the information of all current window apps.
Custom whiteboard tools
The MemberState
has the following new properties for customizing whiteboard tools:
textColor
: The color of the text in the text tool.pencilEraserSize
: The size of the pencil eraser tool.
New PPT rendering configurations
The WhiteSdkConfiguration.SlideAppOptions
has the following new properties for PPT rendering configurations:
minFPS
: Sets the minimum frame rate for PPT animations.maxFPS
: Sets the maximum frame rate for PPT animations.resolution
: Sets the rendering resolution multiplier for PPT.maxResolutionLevel
: Sets the maximum resolution for PPT.bgColor
: Sets the background color for PPT animations.forceCanvas
: Specifies whether to force 2D rendering. It is disabled by default.enableGlobalClick
: Specifies whether to enable executing the next step function by clicking on the PPT screen. It is enabled by default.
Whiteboard drawing performance optimization strategy
The RoomParams
has a new property optimizeOptions
for setting the performance optimization strategy for whiteboard drawing. The performance optimization includes the following three methods:
- Adjusting the refresh interval of whiteboard drawing: A lower refresh interval provides smoother stroke display but has a higher performance consumption, while a higher refresh interval makes the stroke appear more laggy but has a lower performance consumption.
- Using single canvas drawing: By default, the whiteboard uses two canvases alternately to avoid flickering on some devices during drawing. Using a single canvas drawing can prevent the need for redrawing and reduce performance consumption.
- Using floating canvas: In the writing scenario, after enabling single canvas drawing, a floating canvas of approximately 256 x 256px is generated based on the drawing position. When subsequent drawing does not exceed the range of this floating canvas, the synchronous drawing of strokes will be limited to this floating canvas instead of the entire canvas, reducing performance consumption.
Other additions
This version also includes the following features:
- Adds the
updateText
method for updating the text inserted usinginsertText
. - Adds the
setSyncMode
method for immediately processing whiteboard events and drawing strokes. - Adds the
setDisableInitialStateCallback
method for disabling the callback of the full state after joining the room.
Fixed issues
This version fixes the following issues:
- When
WhiteWindowParams.fullscreen
was enabled, the app did not display in full screen on the second opening. - When
WindowParams.fullscreen
was enabled, the status bar occasionally flickered. - Path animation could not return to the original position after page switching.
- Diamond fill filled the entire shape.
- The built-in cursor disappeared after reconnection.
- Occasional flickering when using fade-in and fade-out animations.
- The built-in cursor disappeared after modifying
isWritable
.
API changes
Added
addApp
closeApp
focusApp
queryApp
queryAllApps
WindowAppSyncAttrs
- The following in
MemberState
:textColor
pencilEraserSize
- The following in
SlideAppOptions
:minFPS
maxFPS
resolution
maxResolutionLevel
bgColor
forceCanvas
enableGlobalClick
setSyncMode
updateText
setDisableInitialStateCallback
Modified
insertText
v2.16.59
v2.16.59 was released on January 19, 2024.
Compatibility changes
This version deprecates the existing London data center (Region.gb-lon
) in the Whiteboard Data Center and introduces a new data center in Frankfurt, Europe (Region.eu
), whose service covers Europe. If you have set Region.gb-lon
in the previous version, please switch to Region.eu
after upgrading to this version and enable this data center in Agora Console.
New features
PPT Volume Control
This version adds the getSlideVolume
and updateSlideVolume
methods to retrieve and update the volume of audio in PPT slides.
PPT URL Intercept and Replacement
WhiteSdkConfiguration
adds a new configuration option, enableSlideInterrupterAPI
, to enable intercepting and replacing URLs of PPT resources. This feature can be used to encrypt PPT resources uploaded by users and protect their privacy.
Once enabled, the PPT file URL intercept and replacement feature can be implemented by calling WhiteSdk.setSlideListener(SlideListener)
.
PPT Rendering Notification
WhiteSdkConfiguration
adds the whiteSlideAppParams
configuration option for displaying configurations related to @netless/app-slide rendering. Currently, it supports configuring WhiteSlideAppParams.showRenderError
to show or hide rendering error notifications.
Custom API Server Domain
WhiteSdkConfiguration
adds the apiHosts
configuration option to configure a list of API server domains for the whiteboard, which can be used for server proxy implementation.
Custom Module Source
RoomParams
adds the modulesOrigin
configuration option to configure the address for requesting whiteboard module data.
Document Operation Events
This release adds the dispatchDocsEvent
method to send events to the inserted PDF/PPTX documents in the whiteboard, allowing control over document page flipping, page navigation, and slide animation playback.
Improvements
Optimized Document Insertion
This version optimizes the process of converting and inserting PPT files into the whiteboard using the new document conversion service. You can use the new createSlideApp
method to construct a WindowAppParam
object, which includes ProjectorAttributes
and ProjectorOptions
, corresponding to the parameters passed when opening the document, see addApp
.
Window Fullscreen
A new property, WindowParams.fullscreen
, is added to control whether the window is displayed in fullscreen mode.
Issues fixed
This version fixed the issue of layout preview not working in the latest version of Android Studio.
API Changes
Added
-
getSlideVolumeWithCompletionHandler
-
updateSlideVolume
-
WhiteSdkConfiguration
enableSlideInterrupterAPI
whiteSlideAppParams
apiHosts
-
setSlideDelegate
-
modulesOrigin
inRoomParams
-
dispatchDocsEvent
-
WindowDocsEvent
-
createSlideApp
ProjectorAttributes
ProjectorOptions
WindowAppParam
-
WindowParams.fullscreen
v2.16.42
v2.16.42 was released on December 2, 2022.
New features
1. Whiteboard tool updates
This release adds new features for the following whiteboard tools:
- Pencil: Adds support for drawing dotted lines by adding
dottedLine: true
inroom.memberState
. - Text: Adds support for directly selecting and editing whiteboard text by adding
textCanSelectText: true
inroom.memberState
.
In addition, this release adds a pencil eraser tool to erase any part of a pencil stroke.
2. Floatbar
This release adds the floatbar feature. The floatbar pops up when selecting any whiteboard item, which enables users to easily edit these whiteboard items. For example, when selecting a stroke, the floatbar enables the user to remove it or change its color. When selecting text, the floatbar enables the user to adjust its style or change its typeface.
Call the setUsingFloatBar
method to enable the floatbar.
3. Remove whiteboard pages
This release adds the removePage
method to delete a specified whiteboard page.
4. Request slide log
This release adds the requestSlideLog
method in the WhiteSdk
class to request the slide log on the client.
This facilitates debugging slide-related issues.
5. Player callbacks
To facilitate listening to the state changes of Player
, this release adds addPlayerListener
and removePlayerListener
methods to add and remove player callbacks.
Improvements
This release optimizes the audio playback control in PPT files. You can now pause or resume audio mixing or playback in
dynamic PPT files with the pauseAudioMixing
and resumeAudioMixing
methods.
Fixed issues
This release fixes the following issues:
- Under multi-window mode, no callback was received when the
sceneState
changed. - The creation of the whiteboard app sometimes failed after reconnection.
- When creating the whiteboard app, synchronizing the initial height and width sometimes failed.
- Switching the readable/writable state sometimes caused the configuration to be lost in the
disableCameraTransform
ofmainView
.
API changes
Added
- New properties in the
MemberState
class:dottedLine
andtextCanSelectText
- New property in the
Appliance
class:PENCIL_ERASER
removePage
pauseAudioMixing
resumeAudioMixing
addPlayerListener
removePlayerListener
setUsingFloatBar
requestSlideLog
v2.16.21
v2.16.21 was released on September 13, 2022.
Compatibility changes
SDK integration changes
As of v2.16.0, Agora only updates the netless-io:whiteboard-android
GitHub repository; Agora no longer maintains the duty-os:white-sdk-android
GitHub repository. When integrating the SDK v2.16.0 or later with JitPack, you need to modify the implementation
field under dependencies
in the /Gradle Scripts/build.gradle(Module: <projectname>.app)
file as follows:
For details, see Get the SDK.
New features
1. Inserting text
This release adds the insertText
method for inserting text at a specified position.
2. Disabling the stroke effect
This release adds the setDisableNewPencilStroke
method to WhiteSdkConfiguration
to enable or disable the stroke effect of the pencil. The default value of the disableNewPencilStroke
parameter in this method is true
, and the SDK enables the stroke effect immediately when you call setDisableNewPencil(false)
to enable the new pencil. To disable the stroke effect after setting setDisableNewPencil(false)
, you can call setDisableNewPencilStroke(true)
.
This release also adds the isDisableNewPencilStroke
method to WhiteSdkConfiguration
to get whether the stroke effect of the new pencil is disabled.
3. Getting the scene information
adds the getScene
method to the Displayer
class, which supports using the scene path to get the information about a specified scene.
Improvements
This release provides the following improvements:
- Adds tween animation for the new pencil. This allows the SDK to automatically insert frames between keyframes when a user draws or writes with the new pencil, so that remote users see a smoother drawing process. To experience this improvement, ensure that you have called
setDisableNewPencil(false)
to enable the new pencil. - Optimizes the writing performance on Android browsers.
- Optimizes the reconnecting mechanism in weak network environment to reduce unnecessary reconnections.
Fixed issues
This release fixed the following issues:
- Occasionally, the contents on the whiteboard appeared shifted and overshadowed after users zoomed or moved their view.
- Occasionally, users could not switch the pages of a dynamic PPT slide after an SDK reconnection.
- The contents on the whiteboard occasionally were not fully displayed when users joined a whiteboard room that already had.
- A memory leak sometimes occurred after an SDK reconnection.
- An error sometimes occurred when calling
setWritable
repeatedly. - When a user switched to read-only mode, then switched back to read-write mode and wrote, remote users saw that user's cursor as fixed.
API changes
Added
v2.15.24
v2.15.24 was released on January 21, 2022.
This release provides the following improvements:
- Updates
white-web-sdk
to v2.15.16. - Optimizes
getSceneSnapshotImage
andgetScenePreviewImage
to ensure the images inserted in the scene are displayed correctly in the screenshot.
v2.15.0
v2.15.0 was released on November 16, 2021.
Compatibility changes
To help you manage users in a room, this release adds the uid
parameter in RoomParams
, for setting the unique identifier of a user.
If you upgrade the SDK to v2.15.0 or later, to avoid affecting your service, ensure that you pass in a string uid
in RoomParams
when calling joinRoom
. The uid
of each user cannot be longer than 1024 bytes and must be unique in the same room. For more information, see Join a Whiteboard Room.
New features
This release adds support for converting and displaying the following PowerPoint (PPT) features:
- Action buttons
- Slide masters added with animation effects.
Improvements
This release provides the following improvements:
- Updates
white-web-sdk
to v2.15.1. - Further optimizes the writing experience.
Fixed issues
This release has fixed the following issues:
- The following issues with displaying dynamic PPT files in the whiteboard were fixed:
- The images were displaced occasionally.
- Failure to read certain styles caused the screen to go blank.
- The rotation angle and color were incorrect for some text..
- Occasionally, elements with an animation effect were not displayed
- The animation of some text was displayed incorrectly.
API changes
Modified
- RoomParams [1/3]
- RoomParams [2/3]
- RoomParams [3/3]
v2.14.3
v2.14.3 was released on November 11, 2021.
Compatibility changes
As of this release, the minimum platform version supported by the Agora Interactive Whiteboard Android SDK changes as follows:
- Android 5.0, instead of Android 4.4
- Android SDK API level 21, instead of Android SDK API level 19
Improvements
This release provides the following improvements:
- Updates
white-web-sdk
to v2.14.5. - Further optimizes the writing performance.
- Optimizes the shape of handwriting.
- Improves the accuracy of the
onPhaseChanged
callback. - Hides elements that should not be displayed in a slide master using the file-conversion function.
Fixed issues
This release has fixed the following issues:
- After switching to the hand tool, users could not switch back to the cursor.
- Occasionally, the handwriting disappeared suddenly during writing.
- Occasionally, the handwriting had unnatural teardrop-like strokes during writing.
- When the user edited text after manually scaling the text box, the text box and text reverted to the original size.
- The view became incorrect after the window size changed on some browsers and devices.
- When the eraser was moved quickly, the eraser icon was not enlarged and the fast deleting function did not work.
- Occasionally, multiple audio files in dynamic PPT slides played simultaneously.
- Animations were displayed incorrectly after a dynamic PPT slide returned to the previous page.
- Occasionally, a text box with an animation effect was flipped in mirror mode.
v2.13.22
v2.13.22 was released on August 20, 2021.
New features
This release has the following new features:
- Adds the
onLogger
callback in theCommonCallback
interface, with which you can get the local debug log output by the SDK. - Adds support for converting and displaying the following PowerPoint (PPT) features:
- Add animations to text per paragraph.
- Animate text by word or by letter.
- All preset table styles.
- Fonts smaller than 12 px.
Improvements
This release updates white-web-sdk
to 2.13.17.
Fixed issues
This release fixed the following issues:
- The
onLogger
andonMessage
callbacks did not take effect. - Occasionally, the room was stuck in the connecting state when the user joined a room.
- The cursor disappeared for some users after the SDK reconnected.
- The status of some plugins was incorrect after the SDK reconnected.
- The hand tool was not restricted by the set CameraBound .
- On some high-resolution devices, when the user was in the Follower view mode, the center point of the view was slightly shifted.
- The following issues with displaying dynamic PPT files in the whiteboard were fixed:
- Paragraph spacing was displayed incorrectly.
- Failed to split text into columns.
- The slide background fill of shapes was displayed incorrectly.
- Hanging indentation was displayed incorrectly.
- The slide was displayed incorrectly when the user called pptPreviousStep to roll back a slide.
- The numbering of text displayed incorrectly.
- Some equations were displayed incompletely after conversion.
- Some lines broke incorrectly.
- Text written from right to left (such as Arabic) was displayed incorrectly.
v2.13.17
v2.13.17 was released on July 23 2021.
New features
To improve the dynamic file conversion function, this release adds support for converting and displaying the following PowerPoint (PPT) features:
- Animation effect > Reverse Path Direction
- Vertical Text Box
- Microsoft Equation Editor 3.0
- Hide background graphic in a slide master
- Change the color of pictures
- The following picture effects are now supported:
- Metal Frame
- Soft Edge Rectangle
- Double Frame, Black
- Thick Matte, Black
- Simple Frame, Black
- Moderate Frame, Black
- Center Shadow Rectangle
- Soft Edge Oval
- Metal Rounded Rectangle
- Metal Oval
Improvements
This release has the following improvements:
- Updates
white-web-sdk
to 2.13.11. - Updates
@netless/video-js-plugin
to 0.3.3. - Reduces CPU usage during the playback of animations in dynamic PPT files.
- Improves the smoothness of writing and drawing on the whiteboard
- To improve the accuracy of time synchronization, changes the data type of the
delaySec
parameter insetTimeDelay
from Integer to Double. - Supports printing logs on scene changes.
- Adds the
preview
parameter inPptPage
, which supports displaying dynamic PPT previews in the whiteboard. See API reference.
Fixed issues
This release fixed the following issues:
- The contents on the whiteboard occasionally became unclear when the user adjusted the view.
- Users of the Android SDK occasionally failed to draw the first line after joining the room.
- The method call of
refreshViewSize
did not take effect occasionally. - The following issues with displaying dynamic PPT files in the whiteboard were fixed:
- Animations did not play in the set order.
- Animations did not disappear when playback finished.
- Table height was displayed incorrectly.
- Pictures inserted in content placeholders failed to display.
- Some shapes were rendered incorrectly.
- The text was incorrectly indented.
- Animation triggers did not work.
- Picture transparency was incorrect.
v2.13.4
v2.13.4 was released on June 15, 2021.
This release updates white-web-sdk
to 2.13.4.
v2.13.2
v2.13.2 was released on June 11, 2021.
This release updates white-web-sdk
to 2.13.3.
v2.13.1
v2.13.1 was released on June 11, 2021.
Improvement
This release updates white-web-sdk
to 2.13.2.
Issue fixed
This release fixed the issue that when disableDeviceInputs
is set as true
, the user might still be able to operate the iframe plugin.
v2.12.36
v2.12.36 was released on June 8, 2021.
This release fixed the following issue: If the user in host mode zooms in or out on the HTML5 file while using the clicker tool, users in follower mode saw incomplete display of file content.
v2.12.35
v2.12.35 was released on June 7, 2021.
This release updates @netless/cursor-tool
to 0.1.0 and @netless/iframe-bridge
to 2.1.2.
v2.12.34
v2.12.34 was released on June 4, 2021.
This release updates white-web-sdk
to 2.12.21.
v2.12.33
v2.12.33 was released on June 3, 2021.
This release updates @netless/video-js-plugin
to 0.1.5.
v2.12.32
v2.12.32 was released on June 2, 2021.
This release fixed the video display issues of @netless/video-js-plugin
.
v2.12.31
v2.12.31 was released on June 1, 2021.
This release updates @netless/video-js-plugin
to 0.1.3 to fix the incompatibility issue between the video-js-plugin
and earlier versions of Andrid WebView .
v2.12.30
v2.12.30 was released on May 25, 2021.
This release updates @netless/cursor-tool
to 0.0.9.
v2.12.29
v2.12.29 was released on May 24, 2021.
New features
This release integrates @netless/video-js-plugin
, which is used by an Android client to watch video played on the whiteboard on a Web client. Supported file formats include M3U8 and others.
Improvement
This release updates white-web-sdk
to 2.12.20.
v2.12.28
v2.12.28 was released on May 20, 2021.
This release updates white-web-sdk
to 2.12.19.
v2.12.27
v2.12.27 was released on May 17, 2021.
This release has the following improvements:
- Updates
white-web-sdk
to 2.12.18. - Enables server-side typesetting (
useServerWrap
) by default. When server-side typesetting is enabled, the size of font files are automatically reduced for faster rendering.
v2.12.26
v2.12.26 was released on May 13, 2021.
This release adds the following features:
- Adds
Clicker
toAppliance
for interacting with HTML5 files. - Adds
ShapeType
toMemberState
for setting the Shape tool. Supported shape types include triangle, rhombus, pentagram, and speech balloon. - Adds the
syncBlockTimestamp
method to theRoom
class. You can use this method to set the delay time for sending the whiteboard content, so that the whiteboard content and the audio and video are sent at the same time. - Updates
white-web-sdk
to 2.12.17.
v2.12.25
v2.12.25 was released on April 28, 2021.
This release updates @Netless/white-audio-plugin2
and @Netless/white-video-plugin2
to fix some display issues.
v2.12.24
v2.12.24 was released on April 27, 2021.
New features
This release integrates @Netless/white-audio-plugin2
and @Netless/white-video-plugin2
, which are used by an Android client to listen to audio and watch video played on the whiteboard on a Web client.
Fixed issues
This release fixed the issue that the asynchronous getRoomState
method had no callbacks.
v2.12.22
v2.12.22 was released on April 22, 2021.
This release updates white-web-sdk
to 2.12.14.
v2.12.21
v2.12.21 was released on April 22, 2021.
This release has the following improvements:
- Changes
RoomListener
andPlayerListener
to main thread callbacks. - Updates
white-web-sdk
to 2.12.13. - Updates
@Netless/iframe-bridge
to 2.12.17.
v2.12.20
v2.12.20 was released on April 17, 2021.
This release updates white-web-sdk
to 2.12.12.
v2.12.19
v2.12.19 was released on April 14, 2021.
This release has the following improvements:
- Adds a new constructor of
PptParams
that does not contain thescheme
parameter. - Updates
@Netless/iframe-bridge
to 2.0.14 to improve the iframe plugin.
v2.12.18
v2.12.18 was released on April 12, 2021.
This release updates @netless/iframe-bridge
to 2.0.13 to improve message notifications.
v2.12.17
v2.12.17 was released on April 12, 2021.
This release updates @netless/iframe-bridge
to 2.0.11 and improves the display on Android devices.
v2.12.16
v2.12.16 was released on April 9, 2021.
This release updates @netless/iframe-bridge
to 2.0.10 and improves the display on Android devices.
v2.12.15
v2.12.15 was released on April 10, 2021.
This release updates white-web-sdk
to 2.12.9.
v2.12.14
v2.12.14 was released on April 9, 2021.
This release updates @netless/iframe-bridge
to 2.0.9 to fix the display of HTML5 files.
v2.12.13
v2.12.13 was released on April 9, 2021.
This release restores the scaleIframeToFit
method of the Displayer
class.
v2.12.12
v2.12.12 was released on April 9, 2021.
This release updates @netless/iframe-bridge
to 2.0.8 to fix the display of HTML5 files.
v2.12.11
v2.12.11 was released on April 6, 2021.
This release updates white-web-sdk
to 2.12.8 to fix the problem that setting Follower mode did not take effect immediately.
v2.12.10
v2.12.10 was released on April 2, 2021.
This release updates white-web-sdk
to 2.12.7 to improve the display of dynamic PPT files.
v2.12.9
v2.12.9 was released on March 30, 2021.
This release updates @netless/iframe-bridge
to 2.0.7.
v2.12.8
v2.12.8 was released on March 30, 2021.
This release updates white-web-sdk
to 2.12.6.
v2.12.7
v2.12.7 was released on March 25, 2021.
This release updates @netless/iframe-bridge
to 2.0.5.
v2.12.6
v2.12.6 was released on March 25, 2021.
This release adds the scaleIframeToFit
method to the Displayer
class to enable zooming in and out so that HTML5 files can be displayed completely on screen.
v2.12.5
v2.12.5 was released on March 25, 2021.
This release updates @netless/cursor-tool
to 0.0.7.
v2.12.3
v2.12.3 was released on March 20, 2021.
This release changes the default value of disableNewPencil
in the setDisableNewPencil
method from false
to true
so that the stroke effect is disabled by default. This addresses the issue that the stroke effect is not supported by SDKs earlier than v2.2.12.
To enable the stroke effect properly, ensure that every user in the room is using one of the following SDKs:
- Android SDK v2.12.3 or later
- iOS SDK v2.12.3 or later
- Web SDK v2.12.5 or later
v2.12.2
v2.12.2 was released on March 16, 2021.
New features
This release adds the stroke effect to better display handwriting. Call setDisableNewPencil
to enable or disable the stroke effect, and call isDisableNewPencil
to see whether the stroke effect is enabled.
To enable the stroke effect properly, ensure that every user in the room is using one of the following SDKs:
- Android SDK v2.12.2 or later
- iOS SDK v2.12.3 or later
- Web SDK v2.12.5 or later
Improvements
This release updates white-web-sdk
to v2.12.4 to improve the display logic of PPT files.
Issues fixed
Fixed the crash problem caused by abnormal callbacks in live rooms in debug
mode.