## 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技术以及解决集成问题。