anyrtc-whiteboard
Version:
This is an white board SDK include ui, simple ot use, you can visit anyrtc.io get app token.
275 lines (189 loc) • 8.68 kB
Markdown
## API接口
|API Name | Desciption|
|----------|:-------------:|
|[initEngineWithAnyRTCInfo](#initEngineWithAnyRTCInfo) | 连接画板服务|
|[initWithRoomID](#initWithRoomID) | 初始化画板,返回所有画板信息|
|[setBrushModel](#setBrushModel) | 设置画笔类型 |
|[getBrushModel](#getBrushModel) | 获取画笔类型 |
|[setBrushWidth](#setBrushWidth) | 设置画笔粗细 |
|[getBrushWidth](#getBrushWidth) | 获取画笔粗细 |
|[setBrushColor](#setBrushColor) | 设置画笔颜色 |
|[getBrushColor](#getBrushColor) | 获取画笔颜色 |
|[updateCurrentBgImage](#updateCurrentBgImage) | 更新当前画板背景图片 |
|[getCurrentBgImageURL](#getCurrentBgImageURL) | 获取当前画板背景图片 |
|[addBoard](#addBoard) | 添加一页画板(向前或向后) |
|[deleteCurrentBoard](#deleteCurrentBoard) | 删除当前画板页 |
|[prePage](#prePage) | 切换到上一页 |
|[nextPage](#nextPage) | 切换到下一页 |
|[switchPage](#switchPage) | 切换到具体某一页 |
|[setCanvasSize](#setCanvasSize) | 设置画板大小(页面变化时调用) |
|[setBoardScale](#setBoardScale) | 放大缩小画板 |
|[undo](#undo) | 撤销当前画板页自己绘制的笔迹 |
|[destoryBoard](#destoryBoard) | 清除所有画板的笔迹以及背景图片 |
|[cleanAllDraws](#cleanAllDraws) | 清除所有画板的笔迹 |
|[clearCurrentDraw](#clearCurrentDraw) | 清除当前画板所有笔迹 |
|[leave](#leave) | 离开画板(房间) |
## 事件监听
|API Name | Desciption|
|----------|:-------------:|
|[onBoardServerDisconnect](#onBoardServerDisconnect) | 白板断开连接 |
|[onBoardPageChange](#onBoardPageChange) |当画板发生变化,将会收到该回调(例如翻页、添加一页、删除一页、背景图片更新等等)|
|[onBoardDrawsChangeTimestamp](#onBoardDrawsChangeTimestamp) | 画板实时变化时间戳回调 |
|[onBoardDestroy](#onBoardDestroy) | 画板被销毁时的回调 |
|[onBoardError](#onBoardError) | 白板发生错误,错误码 |
---
## API介绍
<h3 id="initEngineWithAnyRTCInfo">initEngineWithAnyRTCInfo</h3>
> 连接画板服务,返回code为0表示连接成功。<Promise>
|Params | Desciption|
|----------|:-------------:|
|DEV_ID | anyRTC开发平台的开发者ID |
|APP_ID | anyRTC开发平台的应用的appID|
|APP_KEY | anyRTC开发平台的应用的appKEY |
|APP_TOKEN | anyRTC开发平台的应用的appTOKEN |
|APP_DOMAIN | 授权网站域名 |
<h3 id="initWithRoomID">initWithRoomID</h3>
> 初始化画板,返回所有画板信息。<Promise>
|Params | Desciption|
|----------|:-------------:|
|anyRTCId | 房间号ID |
|fileId | 文件ID |
|userId | 用户id |
|backgroundList | 画板背景图URL(保证图片源允许跨域),第一次创建房间时必生效,后续初始化不会覆盖掉之前服务端的背景图片 |
> ***backgroundList*** 的参数
|Params | Desciption|
|----------|:-------------:|
|board_background | 背景图片 |
|board_number | 画板的页数 |
注意:该参数为画板背景图片的队列,存储着每一页的背景图片。第一次初始化时```backgroundList```参数为```必填```。当第一次初始化之后,再次初始化时不会清除上一次的画板数据,而是读取上次的数据进行渲染。
<h3 id="setBrushModel">setBrushModel</h3>
> 设置画笔的类型
|Params | key | value |
|----------|:-------------:|---|
|nType | ```0``` | 不可编辑 |
| | ```1```| 涂鸦(默认) |
| |```2```| 箭头 |
| |```3``` | 直线 |
| | ```4``` | 矩形 |
<h3 id="getBrushModel">getBrushModel</h3>
> 获取画笔的类型
<h3 id="setBrushWidth">setBrushWidth</h3>
> 设置画笔的粗细
|Params | Desciption|
|----------|:-------------:|
|nWidth | ```int```型,例如10,该值均自动转换为```px```。 |
<h3 id="getBrushWidth">getBrushWidth</h3>
> 获取画笔的粗细
|Params | Desciption|
|----------|:-------------:|
|nWidth | ```int```型,例如10,该值均自动转换为```px```。 |
<h3 id="setBrushColor">setBrushColor</h3>
> 设置画笔的颜色
|Params | Desciption|
|----------|:-------------:|
|strColor | 颜色的十六进制码。例如```#000000```,为了和移动平台的兼容性,请勿缩写为```#000``` |
<h3 id="getBrushColor">getBrushColor</h3>
> 获取画笔的颜色
<h3 id="updateCurrentBgImage">updateCurrentBgImage</h3>
> 更新当前画板背景图片
|Params | Desciption|
|----------|:-------------:|
|strBGUrl | 图片url |
<h3 id="getCurrentBgImageURL">getCurrentBgImageURL</h3>
> 获取当前画板的背景图片URL
<h3 id="addBoard">addBoard</h3>
> 在当前画板之前或之后插入一个新的画板
|Params | Desciption|
|----------|:-------------:|
|withFront | ```0```表示在当前画板```之前```插入,```1```表示在当前画板```之后```插入 |
|boardBGUrl | 插入新画板的背景图片URL(保证图片源允许跨域) |
<h3 id="deleteCurrentBoard">deleteCurrentBoard</h3>
> 删除当前页的画板
<h3 id="prePage">prePage</h3>
> 切换到上一页
|Params | Desciption|
|----------|:-------------:|
|needSync | ```true```其他端的画板同步滑动到上一页,```false```仅本地滑动到上一页 |
<h3 id="nextPage">nextPage</h3>
> 切换到下一页
|Params | Desciption|
|----------|:-------------:|
|needSync | ```true```其他端的画板同步滑动到下一页,```false```仅本地滑动到下一页 |
<h3 id="switchPage">switchPage</h3>
> 滑动画板到第几页
|Params | Desciption|
|----------|:-------------:|
|needSync | ```true```其他端的画板同步滑动到指定页,```false```仅本地滑动到指定页 |
|nIndex | 滑动画板到第几页(Int型) |
<h3 id="setCanvasSize">setCanvasSize</h3>
> 设置画板大小,当尺寸变化,或者放大缩小时调用
|Params | Desciption|
|----------|:-------------:|
|nWidth | 画板将要设置的宽度 |
|nHeight | 画板将要设置的高度 |
<h3 id="setBoardScale">setBoardScale</h3>
> 设置画板大小,当尺寸变化,或者放大缩小时调用
|Params | Desciption|
|----------|:-------------:|
|nScale | 画板放大比例,1~3倍 |
<h3 id="undo">undo</h3>
> 撤销画笔,撤销当前画板上自己的画笔,逐条撤销
<h3 id="destoryBoard">destoryBoard</h3>
> 清除所有画板的笔迹以及背景图片
<h3 id="cleanAllDraws">cleanAllDraws</h3>
> 清除所有画板的笔迹
<h3 id="clearCurrentDraw">clearCurrentDraw</h3>
> 清除当前画板所有笔迹
<h3 id="leave">leave</h3>
> 离开画板(房间)
----
<h3 id="onBoardServerDisconnect">画板断开连接</h3>
> 画板断开连接
```
实例.on("onBoardServerDisconnect", () => {
});
```
<h3 id="onBoardPageChange">监听画板变化</h3>
> 监听画板变化,当画板发生变化,将会收到该回调(例如翻页、添加一页、删除一页、背景图片更新等等
```
实例.on("onBoardPageChange", (nIndex, nTotalIndex, currentBgUrl, bgList) => {
});
```
|Params | Desciption |
|----------|:-------------:|
|nIndex | - | 当前画板页数 |
|nTotalIndex | 画板总页数 |
|currentBgUrl | 当前画板背景图片URL |
|bgList | 画板背景图片的队列 |
<h3 id="onBoardDrawsChangeTimestamp">画板实时变化时间戳回调</h3>
> 主持人监听并实现录制,非主持人不做处理
```
实例.on("onBoardDrawsChangeTimestamp", (timestamp) => {
//这里可以截图画板,制作画板录像,一张图片为一帧
});
```
<h3 id="onBoardDestroy">画板被摧毁</h3>
```
实例.on("onBoardDestroy", () => {
});
```
<h3 id="onBoardError">监听画板错误</h3>
```
实例.on("onBoardError", error => {
});
```
<h3 id="onBoardError">错误码</h3>
> 错误码
|code | Desciption |
|----------|:-------------:|
|AnyRTCBoardCodeParameterError |参数为空或者参数错误|
|AnyRTCBoardCodeNoNet | 当前无网络|
|AnyRTCBoardCodeSessionPastDue | Session已过期|
|AnyRTCBoardCodeDeveloperInfoError | 开发者信息错误|
|AnyRTCBoardCodeDeveloperArrearage | 账号欠费|
|AnyRTCBoardCodeDeveloperNotOpen | 该功能未开通|
|AnyRTCBoardCodeDatabaseError | 数据库异常|
|AnyRTCBoardCodeBackgroundListIsNull | 背景图片队列为空 |
## 技术支持
> 加QQ技术咨询群:580477436 (一群) 554714720 (二群)
> 欢迎加入[anyRTC社区](https://bbs.anyrtc.io) 和我们一起探讨WebRTC技术以及解决集成问题。