WhiteBoard
public abstract class com.ss.video.byteboard.WhiteBoard
java

WhiteBoard 对外的接口类,用户通过这个类来操作白板接口。

成员函数
返回名称
abstract intgetWhiteBoardID
abstract StringgetWhiteBoardRoomID
abstract voidsetEventHandler
abstract voidsetEditMode
abstract voidhideDrawing
abstract intsetEditType
abstract intsetPenWidth
abstract intsetPenColor
abstract intsetShapeWidth
abstract intsetShapeColor
abstract intsetTextSize
abstract intsetTextColor
abstract intsetShapeStyle
abstract voidsetViewMode
abstract booleanzoomIn
abstract booleanzoomOut
abstract booleanzoomTo
abstract booleanresetZoom
abstract doublegetZoomFactor
abstract booleansetMaxZoom
abstract voidenableCursorSync
abstract voidsetCursorStyle
abstract booleanaddImage
abstract intundo
abstract intredo
abstract voidclearPage
abstract booleancreatePage
abstract booleancreatePages
abstract PageInfogetCurrentPageInfo
abstract ListgetAllPageInfo
abstract intgetCurrentPageIndex
abstract intgetAllPagesCount
abstract intgetPageIndexByPageId
abstract PageInfogetPageInfoByIndex
abstract booleanremovePage
abstract booleanchangePageBackground
abstract booleanchangeBoardBackground
abstract booleanflipPage
abstract intbindToWindow
abstract voidunBindFromWindow
abstract voidsetMediaSyncTimestamp
abstract voidexportCurrentPageSnapshot
函数说明

getWhiteBoardID
public abstract int com.ss.video.byteboard.WhiteBoard.getWhiteBoardID()
java

获取当前白板 ID。

返回值
白板 ID

getWhiteBoardRoomID
public abstract String com.ss.video.byteboard.WhiteBoard.getWhiteBoardRoomID()
java

获取当前白板所属的房间 ID。

返回值
房间 ID

setEventHandler
public abstract void com.ss.video.byteboard.WhiteBoard.setEventHandler(
    IWhiteBoardEventHandler handler)
java

设置白板事件回调。

传入参数

参数名类型说明
handlerIWhiteBoardEventHandler回调

setEditMode
public abstract void com.ss.video.byteboard.WhiteBoard.setEditMode(
    WhiteBoardDefine.EditMode editMode)
java

设置当前白板是否可以编辑。

传入参数

参数名类型说明
editModeWhiteBoardDefine.EditMode当前白板的编辑模式,详见 EditMode

hideDrawing
public abstract void com.ss.video.byteboard.WhiteBoard.hideDrawing(
    boolean enable)
java

设置是否隐藏白板。

传入参数

参数名类型说明
enableboolean当前白板是否隐藏

setEditType
public abstract int com.ss.video.byteboard.WhiteBoard.setEditType(
    WhiteBoardDefine.EditType editType)
java

设置编辑动作类型。

传入参数

参数名类型说明
editTypeWhiteBoardDefine.EditType编辑动作类型,详见 EditType。

返回值
调用结果
0: 成功

注意
如果默认的光标图形无法满足你的需求,调用 setCursorStyle,为不同工具过指定光标图形和样式。

setPenWidth
public abstract int com.ss.video.byteboard.WhiteBoard.setPenWidth(
    float width)
java

设置笔画笔迹宽度。

传入参数

参数名类型说明
widthfloat笔迹宽度,单位为画布宽度的万分之一

返回值
调用结果
0: 成功

setPenColor
public abstract int com.ss.video.byteboard.WhiteBoard.setPenColor(
    int color)
java

设置笔画颜色。

传入参数

参数名类型说明
colorint格式为 ARGB_8888

返回值
调用结果
0: 成功

setShapeWidth
public abstract int com.ss.video.byteboard.WhiteBoard.setShapeWidth(
    float width)
java

设置形状线条宽度。

传入参数

参数名类型说明
widthfloat形状线条宽度,单位为画布宽度的万分之一

返回值
调用结果
0: 成功

setShapeColor
public abstract int com.ss.video.byteboard.WhiteBoard.setShapeColor(
    int color)
java

设置形状颜色。

传入参数

参数名类型说明
colorint颜色,格式为 ARGB_8888

返回值
调用结果
0: 成功

setTextSize
public abstract int com.ss.video.byteboard.WhiteBoard.setTextSize(
    float size)
java

设置文本字号大小。

传入参数

参数名类型说明
sizefloat文字的高度,单位为画布高的万分之一

返回值
调用结果
0: 成功

setTextColor
public abstract int com.ss.video.byteboard.WhiteBoard.setTextColor(
    int color)
java

设置文字颜色。

传入参数

参数名类型说明
colorint颜色,格式为 ARGB_8888

返回值
调用结果
0: 成功

setShapeStyle
public abstract int com.ss.video.byteboard.WhiteBoard.setShapeStyle(
    ShapeStyle shapeStyle)
java

设置选择框样式。如果默认的选择框样式无法满足你的需求,调用本接口,并传入需要修改的属性。默认样式详见 ShapeStyle。

传入参数

参数名类型说明
shapeStyleShapeStyle选择框样式。详见 ShapeStyle。

返回值
调用结果
0: 成功

setViewMode
public abstract void com.ss.video.byteboard.WhiteBoard.setViewMode(
    WhiteBoardDefine.ViewMode viewMode)
java

设置白板视图跟随模式。

传入参数

参数名类型说明
viewModeWhiteBoardDefine.ViewMode视角同步模式。默认为跟随模式。参见 ViewMode。

注意

zoomIn
public abstract boolean com.ss.video.byteboard.WhiteBoard.zoomIn(
    double scale)
java

按指定倍数放大当前白板视图。

传入参数

参数名类型说明
scaledouble放大倍数。例如当前缩放系数为 1,放大倍数为 2,则成功调用本接口后的缩放系数为 1 • 2 = 3。

返回值
调用结果

注意

zoomOut
public abstract boolean com.ss.video.byteboard.WhiteBoard.zoomOut(
    double scale)
java

按指定倍数缩小当前白板视图。

传入参数

参数名类型说明
scaledouble缩小倍数。例如当前缩放系数为 3,缩小倍数为 2,则成功调用本接口后的缩放系数为 3 - 2 = 1。

返回值
调用结果

注意

zoomTo
public abstract boolean com.ss.video.byteboard.WhiteBoard.zoomTo(
    double scale,
    int offsetX,
    int offsetY)
java

按照指定中心点和缩放系数缩放白板视图。

传入参数

参数名类型说明
scaledouble缩放系数,范围 [1, 20]。1 表示原始大小。放大系数上限默认为 20,以调用 setMaxZoom 设置的为准。
offsetXint缩放中心点 X 坐标,默认为 0
offsetYint缩放中心点 Y 坐标,默认为 0

返回值
调用结果

注意

resetZoom
public abstract boolean com.ss.video.byteboard.WhiteBoard.resetZoom()
java

恢复默认缩放视图。还原到原始大小,视图中心点恢复为白板中心点。

返回值
调用结果

getZoomFactor
public abstract double com.ss.video.byteboard.WhiteBoard.getZoomFactor()
java

获取当前白板视图缩放系数。

返回值
当前白板视图缩放系数。范围 [1, 20]。1 表示原始大小。放大系数上限默认为 20,以调用 setMaxZoom 设置的为准。

setMaxZoom
public abstract boolean com.ss.video.byteboard.WhiteBoard.setMaxZoom(
    double maxScale)
java

设置白板视图最大放大系数。

传入参数

参数名类型说明
maxScaledouble白板视图最大放大系数,范围 [1, 20]。默认为 20。

注意
设置成功后,将改变调用以下 API 的参数上限: zoomIn , zoomOut 或 zoomTo。

enableCursorSync
public abstract void com.ss.video.byteboard.WhiteBoard.enableCursorSync(
    boolean enable)
java

开启光标同步功能,默认关闭。开启后,房间中其他用户可以看到当前用户光标的实时移动轨迹。

传入参数

参数名类型说明
enableboolean是否开启

setCursorStyle
public abstract void com.ss.video.byteboard.WhiteBoard.setCursorStyle(
    HashMap<Integer, CursorInfo> cursorStyles)
java

自定义不同的工具光标样式。如果默认的光标图形无法满足你的需求,调用本接口,为不同工具过指定光标图形和样式。

传入参数

参数名类型说明
cursorStylesHashMap<Integer, CursorInfo>自定义光标样式,字典类型的 key 为 CursorType 中的变量,value 为 UserCursorInfo. CursorInfo 类型。

返回值
调用结果

addImage
public abstract boolean com.ss.video.byteboard.WhiteBoard.addImage(
    String url,
    Rect imagePosition)
java

在当前页面中添加图片

传入参数

参数名类型说明
urlString图片的 url
imagePositionRect图片的位置,单位为画布宽度的万分之一。
选填。默认居中放置,如果图片尺寸比白板页面小,不缩放;如果图片尺寸比白板页面大,按原始尺寸的比例缩小后居中放置。

返回值
调用结果
True: 成功
False: 失败。频繁调用,小于 500 ms;或传入的参数为空。

undo
public abstract int com.ss.video.byteboard.WhiteBoard.undo()
java

撤销

当 onCanUndoStateChanged 返回的状态为 false 时,调用本接口无效。

返回值
调用结果
0: 成功

注意
当 onCanUndoStateChanged 返回的状态为 false 时,调用本接口无效。

redo
public abstract int com.ss.video.byteboard.WhiteBoard.redo()
java

重做

返回值
调用结果
0: 成功

注意
当 onCanRedoStateChanged 返回的状态为 false 时,调用本接口无效。

clearPage
public abstract void com.ss.video.byteboard.WhiteBoard.clearPage()
java

清除页面

注意
调用成功后在房间内所有客户端触发 onClearPage 回调,返回调用结果状态码

createPage
public abstract boolean com.ss.video.byteboard.WhiteBoard.createPage(
    String insertPageId,
    PageInfo pageInfo,
    boolean autoFlip)
java

新建页面

传入参数

参数名类型说明
insertPageIdString目标页面 ID。插入到目标页之后,为空时表示插入到首页
pageInfoPageInfo新页信息,详见 PageInfo
autoFlipboolean创建后自动翻到新页面

返回值

注意
调用成功后在本端和远端触发 onCreatePages 回调。

createPages
public abstract boolean com.ss.video.byteboard.WhiteBoard.createPages(
    String prePageId,
    List<PageInfo> pageConfigs,
    boolean autoFlip)
java

新建多个白板页

传入参数

参数名类型说明
prePageIdString插入到目标页之后,为空时表示插入到首页
pageConfigsList新页信息,详见 PageInfo
autoFlipboolean自动翻到新页

返回值

注意
调用成功后在本端和远端触发 onCreatePages 回调。

getCurrentPageInfo
public abstract PageInfo com.ss.video.byteboard.WhiteBoard.getCurrentPageInfo()
java

获取当前页面信息

返回值
白板页信息,详见 PageInfo

getAllPageInfo
public abstract List<PageInfo> com.ss.video.byteboard.WhiteBoard.getAllPageInfo()
java

获取所有页面信息

返回值
白板页信息,详见 PageInfo

getCurrentPageIndex
public abstract int com.ss.video.byteboard.WhiteBoard.getCurrentPageIndex()
java

获取当前页面索引

返回值
索引, -1 表示没有找到索引

getAllPagesCount
public abstract int com.ss.video.byteboard.WhiteBoard.getAllPagesCount()
java

获取白板总页数

返回值
总数

getPageIndexByPageId
public abstract int com.ss.video.byteboard.WhiteBoard.getPageIndexByPageId(
    String pageId)
java

获取白板页所在索引号

传入参数

参数名类型说明
pageIdString页面 ID

返回值
索引, -1 表示没有找到索引

getPageInfoByIndex
public abstract PageInfo com.ss.video.byteboard.WhiteBoard.getPageInfoByIndex(
    int index)
java

通过索引号获取白板页信息

传入参数

参数名类型说明
indexint索引

返回值
白板信息,详见 PageInfo

removePage
public abstract boolean com.ss.video.byteboard.WhiteBoard.removePage(
    List<String> pageIds)
java

批量删除白板页

传入参数

参数名类型说明
pageIdsList需要删除的页面 ID

返回值

注意

changePageBackground
public abstract boolean com.ss.video.byteboard.WhiteBoard.changePageBackground(
    String pageId,
    BackgroundInfo backgroundInfo)
java

修改单个页面的背景图、背景色

传入参数

参数名类型说明
pageIdString修改目标页面 ID
backgroundInfoBackgroundInfo背景设置

返回值

注意
成功调用本接口后在本端和远端触发 onChangePageBackground 回调。

changeBoardBackground
public abstract boolean com.ss.video.byteboard.WhiteBoard.changeBoardBackground(
    BackgroundInfo backgroundInfo)
java

修改白板默认背景图、背景色

传入参数

参数名类型说明
backgroundInfoBackgroundInfo背景信息

返回值

注意
成功调用本接口后在本端和远端触发 onChangeBoardBackground 回调。

flipPage
public abstract boolean com.ss.video.byteboard.WhiteBoard.flipPage(
    String pageId)
java

翻页

传入参数

参数名类型说明
pageIdString页面 ID

返回值

bindToWindow
public abstract int com.ss.video.byteboard.WhiteBoard.bindToWindow(
    WindowConfig config)
java

将白板绑定到 UI 控件。

调用 unBindFromWindow 进行解绑。

传入参数

参数名类型说明
configWindowConfig白板会填满绑定的 UI 控件。详见 WindowConfig

返回值
调用结果
0: 成功

注意
注意各端的 UI 控件比例要保持一致,例如固定为 4:3

unBindFromWindow
public abstract void com.ss.video.byteboard.WhiteBoard.unBindFromWindow()
java

解除白板和 UI 控件的绑定

调用 bindToWindow 将白板绑定到 UI 控件。

setMediaSyncTimestamp
public abstract void com.ss.video.byteboard.WhiteBoard.setMediaSyncTimestamp(
    long timestamp)
java

设置时间戳

传入参数

参数名类型说明
timestamplong时间戳,精确到 ms

exportCurrentPageSnapshot
public abstract void com.ss.video.byteboard.WhiteBoard.exportCurrentPageSnapshot()
java

保存当前白板快照。

注意
调用本 API 之后,将立即触发 onExportSnapshot 回调

WhiteBoardRoom
public abstract class com.ss.video.byteboard.WhiteBoardRoom
java

WhiteBoard 房间接口类,用户通过这个类来进行白板房间相关操作

成员函数
返回名称
abstract StringgetRoomID
abstract intjoinRoom
abstract voidleaveRoom
abstract booleancreateWhiteBoard
abstract voidcloseWhiteBoard
abstract intgetActiveWhiteBoard
abstract booleansetActiveWhiteBoard
abstract ListgetAllWhiteBoardInfo
abstract voidcloseRoom
abstract voiddestroyWhiteBoard
abstract WhiteBoardgetWhiteBoard
abstract voidstartPlaybackWhiteBoard
abstract voidpausePlaybackWhiteBoard
abstract voidstopPlaybackWhiteBoard
abstract intsetPlaybackWhiteBoardProgress
函数说明

getRoomID
public abstract String com.ss.video.byteboard.WhiteBoardRoom.getRoomID()
java

获取房间 ID

返回值
房间 ID

joinRoom
public abstract int com.ss.video.byteboard.WhiteBoardRoom.joinRoom()
java

进房

返回值
调用结果

注意
调用后,本端触发 onJoinRoomResult 回调调用结果。

leaveRoom
public abstract void com.ss.video.byteboard.WhiteBoardRoom.leaveRoom()
java

退房

注意
调用后,本端触发 onLeaveRoomResult 回调调用结果。

createWhiteBoard
public abstract boolean com.ss.video.byteboard.WhiteBoardRoom.createWhiteBoard(
    int boardId,
    List<PageInfo> pages,
    BackgroundInfo bkInfo,
    String boardName)
java

创建白板。

传入参数

参数名类型说明
boardIdint白板 ID,必填。当白板 ID 已存在时,创建失败,并通过 onError 返回 CREATE_BOARD_FAILED。
pagesList初始页面信息,默认为空。构建页面信息参见 PageInfo。
bkInfoBackgroundInfo初始背景图,默认为空。参见 BackgroundInfo。
boardNameString白板名称,默认为空。

返回值

注意

closeWhiteBoard
public abstract void com.ss.video.byteboard.WhiteBoardRoom.closeWhiteBoard(
    int boardId)
java

关闭白板。

传入参数

参数名类型说明
boardIdint白板 ID,必填

注意
调用成功后,房间内所有用户都将收到 onCloseWhiteBoard 回调。

getActiveWhiteBoard
public abstract int com.ss.video.byteboard.WhiteBoardRoom.getActiveWhiteBoard()
java

获取当前白板 ID。

返回值
当前白板 ID。-1 表示获取失败。

注意
获取到当前白板 ID后,可以调用 getWhiteBoard 获取相应的白板对象。

setActiveWhiteBoard
public abstract boolean com.ss.video.byteboard.WhiteBoardRoom.setActiveWhiteBoard(
    int boardId)
java

根据白板 ID 将其指定为当前白板。

传入参数

参数名类型说明
boardIdint白板 ID。你可以调用 getAllWhiteBoardInfo 获取房间内所有的白板信息。

返回值

注意
如无特殊说明,对白板进行编辑操作的 API 都只作用在当前白板上。

getAllWhiteBoardInfo
public abstract List<BoardInfo> com.ss.video.byteboard.WhiteBoardRoom.getAllWhiteBoardInfo()
java

获取房间内所有白板。

返回值
白板列表。详见 BoardInfo。

closeRoom
public abstract void com.ss.video.byteboard.WhiteBoardRoom.closeRoom()
java

关闭白板房间。关闭房间后,无法在白板上进行编辑操作。

注意

destroyWhiteBoard
public abstract void com.ss.video.byteboard.WhiteBoardRoom.destroyWhiteBoard(
    WhiteBoard whiteBoard)
java

销毁本地白板实例。

传入参数

参数名类型说明
whiteBoardWhiteBoard待销毁白板实例。详见 WhiteBoard。

注意

getWhiteBoard
public abstract WhiteBoard com.ss.video.byteboard.WhiteBoardRoom.getWhiteBoard(
    int boardID)
java

通过白板 ID 获取白板对象

传入参数

参数名类型说明
boardIDint白板 ID

返回值
白板对象。获取失败时,返回 null,例如,传入的 boardID 有误。

startPlaybackWhiteBoard
public abstract void com.ss.video.byteboard.WhiteBoardRoom.startPlaybackWhiteBoard()
java

开始播放白板录像

成功调用后,触发 onPlaybackWhiteBoardStateChanged 播放状态回调。

注意

pausePlaybackWhiteBoard
public abstract void com.ss.video.byteboard.WhiteBoardRoom.pausePlaybackWhiteBoard()
java

暂停播放白板录像

成功调用后,触发 onPlaybackWhiteBoardStateChanged 播放状态回调。

stopPlaybackWhiteBoard
public abstract void com.ss.video.byteboard.WhiteBoardRoom.stopPlaybackWhiteBoard()
java

停止播放白板录像

成功调用后,触发 onPlaybackWhiteBoardStateChanged 播放状态回调。

setPlaybackWhiteBoardProgress
public abstract int com.ss.video.byteboard.WhiteBoardRoom.setPlaybackWhiteBoardProgress(
    long progress)
java

设置白板录像播放进度

传入参数

参数名类型说明
progresslong白板录像播放进度,单位 s

返回值
调用结果
0: 成功

WhiteBoardRoomManager
public abstract class com.ss.video.byteboard.WhiteBoardRoomManager
java

WhiteBoard 对外的接口类,用户通过这个类来操作白板接口

静态函数
返回名称
static voidsetEnv
static voidsetDeviceID
static voidsetAid
static voidsetLogLocation
static voidsetCacheLocation
static StringgetVersion
static voidoutputLog
成员函数
返回名称
abstract WhiteBoardRoomcreateWhiteBoardRoom
abstract intdestroyWhiteBoardRoom
abstract WhiteBoardRoomgetWhiteBoardRoom
abstract voidenableMediaTimeSync
函数说明

setEnv
public static void com.ss.video.byteboard.WhiteBoardRoomManager.setEnv(
    WhiteBoardDefine.Env env)
java

setDeviceID
public static void com.ss.video.byteboard.WhiteBoardRoomManager.setDeviceID(
    String deviceId)
java

设置设备 ID

传入参数

参数名类型说明
deviceIdString设备 ID

setAid
public static void com.ss.video.byteboard.WhiteBoardRoomManager.setAid(
    String aid)
java

设置设备 ID

传入参数

参数名类型说明
aidStringApp Id

setLogLocation
public static void com.ss.video.byteboard.WhiteBoardRoomManager.setLogLocation(
    String path)
java

设置日志路径

传入参数

参数名类型说明
pathString日志路径

setCacheLocation
public static void com.ss.video.byteboard.WhiteBoardRoomManager.setCacheLocation(
    String path)
java

设置文件路径

传入参数

参数名类型说明
pathString文件路径

getVersion
public static String com.ss.video.byteboard.WhiteBoardRoomManager.getVersion()
java

获取白板 SDK 版本号。

静态方法,无需创建白板实例

返回值
SDK 版本号的字符串

outputLog
public static void com.ss.video.byteboard.WhiteBoardRoomManager.outputLog(
    @WhiteBoardDefine.LogLevel int logLevel,
    String log)
java

将日志写入日志文件

静态方法,无需创建白板实例
日志存放目录 ./files/Logs

传入参数

参数名类型说明
logLevel@WhiteBoardDefine.LogLevel int需要打印的日志等级标签
logString日志

createWhiteBoardRoom
public abstract WhiteBoardRoom com.ss.video.byteboard.WhiteBoardRoomManager.createWhiteBoardRoom(
    String roomID,
    String userID,
    String token,
    IWhiteBoardRoomEventHandler handler)
java

创建白板房间实例

传入参数

参数名类型说明
roomIDString房间 ID
userIDString用户 ID
tokenString动态密钥。用于对用户进行鉴权验证。
测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建实例时使用的 AppID 相同,否则会导致创建房间实例失败。
handlerIWhiteBoardRoomEventHandlerSDK 回调给应用层的 Handler,详见 IWhiteBoardRoomEventHandler

返回值
whiteBoardRoom 实例。参数校验失败时返回空的实例

注意
白板房间创建成功后自动创建白板,成功后将触发 onCreateWhiteBoard 回调。

destroyWhiteBoardRoom
public abstract int com.ss.video.byteboard.WhiteBoardRoomManager.destroyWhiteBoardRoom(
    WhiteBoardRoom whiteBoardRoom)
java

销毁白板房间实例

传入参数

参数名类型说明
whiteBoardRoomWhiteBoardRoom详见 WhiteBoardRoom

返回值
调用结果
0: 成功

getWhiteBoardRoom
public abstract WhiteBoardRoom com.ss.video.byteboard.WhiteBoardRoomManager.getWhiteBoardRoom(
    String roomID)
java

获取白板实例。创建多个房间后,可以通过调用接口获得相应实例

传入参数

参数名类型说明
roomIDString房间 ID

返回值
whiteBoard 详见 WhiteBoardRoom。失败时返回空的实例

enableMediaTimeSync
public abstract void com.ss.video.byteboard.WhiteBoardRoomManager.enableMediaTimeSync(
    boolean enable)
java

开启/关闭时间戳回调

传入参数

参数名类型说明
enableboolean是否开启时间戳回调

注意
在参与白板互动的用户中,选择一个端作为参考对象。在这个端调用本接口,成功开启后将触发 2 秒一次的 onMediaSyncTimestamp 时间戳回调。将时间戳传给房间中的其他客户端,实现时间同步。