互动白板控制器
创建销毁实例
CreateTEduBoardController
创建白板控制类实例
EDUSDK_API TEduBoardController* CreateTEduBoardController(bool disableCefInit=false, const char *cefRenderPath=nullptr)
参数
参数 | 类型 | 含义 |
disableCefInit | bool | 是否禁用 CEF 框架初始化,通常传默认值即可 |
cefRenderPath | const char * | 使用 SDK 内部的 CEF 初始化时,用于指定自定义 Render 进程可执行程序的路径,UTF8 编码,为空或 nullptr 表示使用 SDK 内置 Render 进程 |
返回
白板控制类实例指针
警告
该接口必须在主线程调用
说明
由于 SDK 基于 CEF 框架(BSD-licensed)实现,若您的程序中也使用了 CEF 框架,可能会存在冲突,我们为您提供了冲突解决方案:
1. 选用以下两种方法中的一种来启用自己的 Render 进程:
令 disableCefInit = false,cefRenderPath 指向您自己的 Render 进程。
令 disableCefInit = true,自行实现 CEF 初始化。
2. 按下面说明,在您的 Render 进程内调用 SDK 的 RenderProcessHandler。
Render 进程启动后调用接口获取一个 sdkHandler 实例,CefRefPtr< CefRenderProcessHandler> sdkHandler = (CefRenderProcessHandler * )GetTEduBoardRenderProcessHandler();
在 Render 进程的 CefApp 中重写 GetRenderProcessHandler 方法,每次都返回以上 sdkHandler。
若您需要自定义 CefRenderProcessHandler,第二步可返回自定义 Handler,然后在自定义 Handler 的下面几个方法中,调用 sdkHandler 的对应方法。
OnBrowserCreated
OnBrowserDestroyed
OnContextCreated
DestroyTEduBoardController
销毁白板控制类
EDUSDK_API void DestroyTEduBoardController(TEduBoardController **ppBoardController)
参数
参数 | 类型 | 含义 |
ppBoardController | TEduBoardController ** | 指向白板控制类指针 |
介绍
ppBoardController 指针会被自动置空。
ClearTEduBoardSDKEnv
清理白板 SDK 环境,在不使用白板后调用以释放资源。
EDUSDK_API void ClearTEduBoardSDKEnv()
警告
该接口必须在主线程调用
说明
请在确保不再使用白板功能时才调用该接口(建议在应用程序退出前调用),调用了该接口之后,CreateTEduBoardController 接口不再有效。
日志相关接口
GetTEduBoardVersion
获取 SDK 版本号
EDUSDK_API const char* GetTEduBoardVersion()
返回
SDK 版本号
介绍
返回值内存由 SDK 内部管理,用户不需要自己释放。
SetTEduBoardLogFileDir
设置白板日志文件存储目录路径
EDUSDK_API bool SetTEduBoardLogFileDir(const char *logDir)
参数
参数 | 类型 | 含义 |
logDir | const char * | 要设置的白板日志文件存储目录路径,UTF8 编码,为空或 nullptr 表示使用默认路径 |
SetLogLevel
设置输出日志级别
EDUSDK_API bool SetLogLevel(const uint32_t *level)
参数
参数 | 类型 | 含义 |
SetLogLevel | const uint32_t * | 日志级别 |
返回
设置白板日志文件存储目录是否成功。
警告
该接口必须要在第一次调用 CreateTEduBoardController 之前调用才有效,否则将会失败。
介绍
默认路径,Windows下为:"%AppData%/../Local/TEduBoard"
默认路径,Linux下为:"~/TEduBoard"
高级功能接口
EnableTEduBoardOffscreenRender
启用白板离屏渲染
EDUSDK_API bool EnableTEduBoardOffscreenRender(uint32_t maxFps=30)
参数
参数 | 类型 | 含义 |
maxFps | uint32_t | 离屏渲染的最大帧率,取值[1, 60] |
返回
启用离屏渲染是否成功
警告
该接口必须要在第一次调用 CreateTEduBoardController 之前调用才有效,否则将会失败。
介绍
启用离屏渲染时,SDK 不再创建白板 VIEW,而是通过 onTEBOffscreenPaint 回调接口将白板离屏渲染的像素数据抛出。
EnableTEduBoardCrashReport
启用白板 Crash 上报
EDUSDK_API bool EnableTEduBoardCrashReport()
返回
启用白板 Crash 上报是否成功
警告
该接口必须要在第一次调用 CreateTEduBoardController 之前调用才有效,否则将会失败。
GetTEduBoardRenderProcessHandler
获取 SDK 内部的 CefRenderProcessHandler
EDUSDK_API void* GetTEduBoardRenderProcessHandler()
返回
SDK 内部的 CefRenderProcessHandler
介绍
本接口详细使用方法参见 CreateTEduBoardController 接口说明。
TEduBoardController
白板控制器
设置 TEduBoardCallback 回调
AddCallback
设置事件回调监听
virtual void AddCallback(TEduBoardCallback *callback)=0
参数
参数 | 类型 | 含义 |
callback | TEduBoardCallback * | 事件回调监听 |
警告
建议在 Init 之前调用该方法以支持错误处理
RemoveCallback
删除事件回调监听
virtual void RemoveCallback(TEduBoardCallback *callback)=0
参数
参数 | 类型 | 含义 |
callback | TEduBoardCallback * | 事件回调监听 |
基本流程接口
Init
初始化白板
virtual void Init(const TEduBoardInitParam &initParam=TEduBoardInitParam())=0
参数
参数 | 类型 | 含义 |
initParam | const TEduBoardInitParam & | 可选参数,指定用于初始化白板的一系列属性值 |
警告
使用腾讯云 IMSDK 进行实时数据同步时,只支持一个白板实例,创建多个白板实例可能导致涂鸦状态异常。
介绍
可用 initParam.timSync 指定是否使用腾讯云 IMSDK 进行实时数据同步 initParam.timSync == true 时,会尝试反射调用腾讯云 IMSDK 作为信令通道进行实时数据收发(只实现消息收发,初始化、进房等操作需要用户自行实现),目前仅支持 IMSDK 4.3.118 及以上版本。
GetBoardRenderView
获取白板渲染 View
virtual WINDOW_HANDLE GetBoardRenderView()=0
返回
白板渲染 View
Refresh
刷新当前页白板,触发 onTEBRefresh 回调。
virtual void Refresh()=0
警告
如果当前白板包含 PPT/H5/图片/视频时,刷新白板将会触发对应的回调。
SyncAndReload
同步本地发送失败的数据到远端并刷新本地数据。
virtual void SyncAndReload()=0
警告
Reload 等同于重新加载历史数据,会触发白板初始化时除 onTEBInit 之外的所有回调。
介绍
接口用途:此接口主要用于网络恢复后,同步本地数据到远端,拉取远端数据到本地。
调用时机:在网络恢复后调用。
使用限制:如果历史数据还没有加载完成,则不允许重复调用,否则回调告警 TEDU_BOARD_WARNING_ILLEGAL_OPERATION。
AddSyncData
添加白板同步数据
virtual void AddSyncData(const char *data)=0
参数
参数 | 类型 | 含义 |
data | const char * | 接收到的房间内其他人发送的同步数据 |
介绍
该接口用于多个白板间的数据同步,使用内置 IM 作为信令通道时,不需要调用该接口。
SetDataSyncEnable
设置白板是否开启数据同步
virtual void SetDataSyncEnable(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | 是否开启 |
介绍
白板创建后默认开启数据同步,关闭数据同步,本地的所有白板操作不会同步到远端和服务器。
IsDataSyncEnable
获取白板是否开启数据同步
virtual bool IsDataSyncEnable()=0
返回
是否开启数据同步,true 表示开启,false 表示关闭。
Reset
重置白板
virtual void Reset()=0
介绍
调用该接口后将会删除所有的白板页和文件
SetBoardRenderViewPos
设置白板渲染 View 的位置和大小
virtual void SetBoardRenderViewPos(int32_t x, int32_t y, uint32_t width, uint32_t height)=0
参数
参数 | 类型 | 含义 |
x | int32_t | 要设置的白板渲染 View 的位置 X 分量 |
y | int32_t | 要设置的白板渲染 View 的位置 Y 分量 |
width | uint32_t | 要设置的白板渲染 View 的宽度 |
height | uint32_t | 要设置的白板渲染 View 的高度 |
介绍
白板渲染 View 有父窗口时,(x, y) 指定相对其父窗口的位置。
GetSyncTime
获取同步时间戳
virtual uint64_t GetSyncTime()=0
返回
毫秒级同步时间戳
SyncRemoteTime
同步远端时间戳
virtual void SyncRemoteTime(const char *userId, uint64_t timestamp)=0
参数
参数 | 类型 | 含义 |
userId | const char * | 远端用户 ID |
timestamp | uint64_t | 远端用户毫秒级同步时间戳 |
SetSystemCursorEnable
是否启用原生系统光标
virtual void SetSystemCursorEnable(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | 启用或禁用,默认禁用 |
AddBackupDomain
添加备用域名
virtual void AddBackupDomain(const char *domain, const char *backup, uint32_t priority=0)=0
参数
参数 | 类型 | 含义 |
domain | const char * | 要添加备用域名的主域名 |
backup | const char * | 要添加的备用域名 |
priority | uint32_t | 备用域名优先级,数字越大优先级越高 |
介绍
主备域名均需要包含协议类型(支持 http/https) 当使用主域名访问资源超时后,按优先级逐个尝试使用备用域名去访问,资源访问超时时间默认为5秒 多次调用此接口,可以为同一个主域名添加多个备用域名,重复添加相同的备用域名会被忽略。
RemoveBackupDomain
删除备用域名
virtual void RemoveBackupDomain(const char *domain, const char *backup)=0
参数
参数 | 类型 | 含义 |
domain | const char * | 要删除备用域名的主域名 |
backup | const char * | 要删除的备用域名,nullptr 或空字符串表示删除主域名对应的所有备用域名 |
SetProxyServer
设置服务的代理服务器
virtual void SetProxyServer(const char *settingStr)=0
参数
参数 | 类型 | 含义 |
settingStr | const char * | 代理服务器配置字符串,字符串内容为一个 JSON 对象,格式参考如下:介绍 |
介绍
{ '服务类型': '代理服务器地址', ... }
CallExperimentalAPI
调用白板实验性接口
virtual const char* CallExperimentalAPI(const char *apiExp)=0
参数
参数 | 类型 | 含义 |
apiExp | const char * | 要执行的白板相关 JS 代码 |
返回
JS 执行后的返回值转换而来的字符串
离屏渲染输入事件相关接口
SendKeyEvent
发送键盘事件到白板
virtual void SendKeyEvent(const TEduBoardKeyEvent &event)=0
参数
参数 | 类型 | 含义 |
event | const TEduBoardKeyEvent & | 要发送的键盘事件 |
SendMouseClickEvent
发送鼠标点击事件到白板
virtual void SendMouseClickEvent(const TEduBoardMouseEvent &event, TEduBoardMouseButtonType type, bool mouseUp, int clickCount)=0
参数
参数 | 类型 | 含义 |
event | const TEduBoardMouseEvent & | 要发送的鼠标事件 |
type | TEduBoardMouseButtonType | 鼠标按键类型 |
mouseUp | bool | 鼠标是否弹起 |
clickCount | int | 点击次数 |
SendMouseMoveEvent
发送鼠标移动事件到白板
virtual void SendMouseMoveEvent(const TEduBoardMouseEvent &event, bool mouseLeave)=0
参数
参数 | 类型 | 含义 |
event | const TEduBoardMouseEvent & | 要发送的鼠标事件 |
mouseLeave | bool | 鼠标是否离开白板 |
SendMouseWheelEvent
发送鼠标滚轮事件到白板
virtual void SendMouseWheelEvent(const TEduBoardMouseEvent &event, int deltaX, int deltaY)=0
参数
参数 | 类型 | 含义 |
event | const TEduBoardMouseEvent & | 要发送的鼠标事件 |
deltaX | int | 滚轮在 X 方向的移动增量 |
deltaY | int | 滚轮在 Y 方向的移动增量 |
SendTouchEvent
发送触摸事件到白板
virtual void SendTouchEvent(const TEduBoardTouchEvent &event)=0
参数
参数 | 类型 | 含义 |
event | const TEduBoardTouchEvent & | 要发送的触摸事件 |
涂鸦相关接口
SetDrawEnable
设置白板是否允许涂鸦
virtual void SetDrawEnable(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | 是否允许涂鸦,true 表示白板可以涂鸦,false 表示白板不能涂鸦 |
介绍
白板创建后默认为允许涂鸦状态
IsDrawEnable
获取白板是否允许涂鸦
virtual bool IsDrawEnable()=0
返回
是否允许涂鸦,true 表示白板可以涂鸦,false 表示白板不能涂鸦。
SetHandwritingEnable
设置白板是否开启笔锋特性
virtual void SetHandwritingEnable(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | 是否开启笔锋,true 表示开启,false 表示关闭 |
介绍
白板创建后默认为关闭
IsHandwritingEnable
获取白板是否开启笔锋特性
virtual bool IsHandwritingEnable()=0
返回
是否开启笔锋特性
SetEraseLayerLimit
设置橡皮擦单次擦除图层数量
virtual void SetEraseLayerLimit(uint32_t limit=0)=0
参数
参数 | 类型 | 含义 |
limit | uint32_t | 擦除图层数量,默认为0,即不限制图层数量 |
介绍
单次擦除:鼠标/手指按下 > 鼠标/手指移动 > 鼠标/手指抬起。
SetEraseLayerType
限制橡皮擦可擦除的白板元素类型
virtual void SetEraseLayerType(const TEduBoardErasableElementType *typeArr=nullptr, uint32_t typeArrCount=0)=0
参数
参数 | 类型 | 含义 |
typeArr | const TEduBoardErasableElementType * | 限制可擦除的白板元素类型数组,默认为 nullptr 则不限制元素类型 |
typeArrCount | uint32_t | 要限制的可擦除的白板元素类型数量 |
SetAccessibleUsers
设置允许操作哪些用户绘制的图形
virtual void SetAccessibleUsers(char **users, uint32_t userCount, TEduBoardAccessibleOperation *operatorType, uint32_t typeCount)=0
参数
参数 | 类型 | 含义 |
users | char ** | 指定允许操作的用户集,为 nullptr 表示不加限制 |
userCount | uint32_t | 指定 users 参数包含的用户个数 |
operatorType | TEduBoardAccessibleOperation * | 用户操作类型 |
typeCount | uint32_t | 操作类型个数 该接口会产生以下影响: 1. ERASER 工具只能擦除 users 参数列出的用户绘制的涂鸦,无法擦除其他人绘制的涂鸦。 2. POINTSELECT、SELECT 工具只能选中 users 参数列出的用户绘制的涂鸦,无法选中其他人绘制的涂鸦。 3. clear 接口只能用于清空选中涂鸦以及 users 参数列出的用户绘制的涂鸦,无法清空背景及其他人绘制的涂鸦。 4. 白板包含的其他功能未在本列表明确列出者都可以确定不受本接口影响。 |
SetToolType
设置要使用的白板工具
virtual void SetToolType(TEduBoardToolType type)=0
参数
参数 | 类型 | 含义 |
type | TEduBoardToolType | 要设置的白板工具 |
GetToolType
获取正在使用的白板工具
virtual TEduBoardToolType GetToolType()=0
返回
正在使用的白板工具
SetToolTypeTitle
设置画笔和激光笔工具提示语
virtual void SetToolTypeTitle(const char *title, const TEduBoardToolTypeTitleStyle *style, TEduBoardToolType type)=0
参数
参数 | 类型 | 含义 |
title | const char * | 提示语 |
style | const TEduBoardToolTypeTitleStyle * | 提示语样式,如果为 nullptr,则使用默认样式 |
type | TEduBoardToolType | - |
SetCursorIcon
自定义白板工具鼠标样式
virtual void SetCursorIcon(TEduBoardToolType type, const TEduBoardCursorIcon &icon)=0
参数
参数 | 类型 | 含义 |
type | TEduBoardToolType | 要设置鼠标样式的白板工具类型 |
icon | const TEduBoardCursorIcon & | 要设置的鼠标样式 |
SetBrushColor
设置画笔颜色
virtual void SetBrushColor(const TEduBoardColor &color)=0
参数
参数 | 类型 | 含义 |
color | const TEduBoardColor & | 要设置的画笔颜色 |
介绍
画笔颜色用于所有涂鸦绘制
GetBrushColor
获取画笔颜色
virtual TEduBoardColor GetBrushColor()=0
返回
画笔颜色
SetBrushThin
设置画笔粗细
virtual void SetBrushThin(uint32_t thin)=0
参数
参数 | 类型 | 含义 |
thin | uint32_t | 要设置的画笔粗细 |
介绍
画笔粗细用于所有涂鸦绘制,实际像素值取值(thin * 白板的高度 / 10000)px,如果结果小于1px,则涂鸦的线条会比较虚。
GetBrushThin
获取画笔粗细
virtual uint32_t GetBrushThin()=0
返回
画笔粗细
SetTextColor
设置文本颜色
virtual void SetTextColor(const TEduBoardColor &color)=0
参数
参数 | 类型 | 含义 |
color | const TEduBoardColor & | 要设置的文本颜色 |
GetTextColor
获取文本颜色
virtual TEduBoardColor GetTextColor()=0
返回
文本颜色
SetTextSize
设置文本大小
virtual void SetTextSize(uint32_t size)=0
参数
参数 | 类型 | 含义 |
size | uint32_t | 要设置的文本大小 |
介绍
实际像素值取值(size * 白板的高度 / 10000)px
GetTextSize
获取文本大小
virtual uint32_t GetTextSize()=0
返回
文本大小
SetTextStyle
设置文本样式
virtual void SetTextStyle(TEduBoardTextStyle style)=0
参数
参数 | 类型 | 含义 |
style | TEduBoardTextStyle | 要设置的文本样式 |
GetTextStyle
获取文本样式
virtual TEduBoardTextStyle GetTextStyle()=0
返回
文本样式
SetLineStyle
设置直线样式
virtual void SetLineStyle(const TEduBoardLineStyle &style)=0
参数
参数 | 类型 | 含义 |
style | const TEduBoardLineStyle & | 要设置的直线样式 |
GetLineStyle
获取直线样式
virtual TEduBoardLineStyle GetLineStyle()=0
返回
直线样式
SetOvalDrawMode
设置椭圆绘制模式
virtual void SetOvalDrawMode(TEduBoardOvalDrawMode drawMode)=0
参数
参数 | 类型 | 含义 |
drawMode | TEduBoardOvalDrawMode | 要设置的椭圆绘制模式 |
GetOvalDrawMode
获取椭圆绘制模式
virtual TEduBoardOvalDrawMode GetOvalDrawMode()=0
返回
椭圆绘制模式
Clear
清空当前白板页涂鸦
virtual void Clear(bool clearBackground=false, bool clearSelectedOnly=false)=0
参数
参数 | 类型 | 含义 |
clearBackground | bool | 是否同时清空背景色以及背景图片 |
clearSelectedOnly | bool | 是否只清除选中部分涂鸦 |
警告
目前不支持清除选中部分的同时清除背景
Undo
撤销当前白板页上一次动作
virtual void Undo()=0
Redo
重做当前白板页上一次撤销
virtual void Redo()=0
setScrollBarVisible
设置白板滚动条是否可见
virtual void setScrollBarVisible(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | true 显示滚动条 false 不显示滚动条 |
setTextFontFamily
设置自定义字体
virtual void setTextFontFamily(const char * fontFace)
参数
参数 | 类型 | 含义 |
fontFace | const char * | 设置自定义字体名称 |
addTextFontFamily
设置自定义字体
建议在创建白板实例后立刻调用;本地端和远端都需要设置字体样式,否则可能出现两端字体显示样式不同步。
virtual void AddTextFontFamily(const char * fontFace, const char * fontUrl)
参数
参数 | 类型 | 含义 |
fontFace | const char * | 字体样式名称 |
fontUrl | const char * | 字体资源链接 |
GetTextFontFamily
获取当前使用字体
virtual void GetTextFontFamily()
返回
当前使用字体
setPiecewiseErasureEnable
是否启用点擦(分段擦除)功能
virtual void setPiecewiseErasureEnable(bool enable)
参数
参数 | 类型 | 含义 |
enable | bool | enable true 启用;false 不启用 |
isPiecewiseErasureEnable
获取分段擦除模式开启状态
virtual void isPiecewiseErasureEnable()
返回
true 已开启; false 未开启。
setEraserSize
获取分段擦除模式开启状态
virtual void setEraserSize(uint32_t radius)
参数
参数 | 类型 | 含义 |
radius | uint32_t | radius 橡皮擦擦除半径,单位:像素,默认16px |
getEraserSize
获取橡皮擦大小
virtual void getEraserSize()
返回
橡皮擦大小,单位:像素。
白板页操作接口
AddBoard
增加一页白板
virtual const char* AddBoard(const char *url=nullptr, const TEduBoardImageFitMode mode=TEDU_BOARD_IMAGE_FIT_MODE_CENTER, const TEduBoardBackgroundType type=TEDU_BOARD_BACKGROUND_IMAGE, bool needSwitch=true)=0
参数
参数 | 类型 | 含义 |
url | const char * | 要使用的背景图片 URL,编码格式为 UTF8,为 nullptr 表示不指定背景图片,只支持 https 协议的图片 URL |
mode | const TEduBoardImageFitMode | 要使用的图片填充对齐模式,当设置 URL 时有效 TEduBoardImageFitMode |
type | const TEduBoardBackgroundType | 背景类型 TEduBoardBackgroundType |
needSwitch | bool | 是否切换到添加的白板页 |
返回
白板 ID
警告
白板页会被添加到默认文件(文件 ID 为::DEFAULT),自行上传的文件无法添加白板页 触发 TEduBoard.EVEN.TEB_ADDBOARD 事件 返回值内存由 SDK 内部管理,用户不需要自己释放。
AddImageElement
添加图片资源
virtual void AddImageElement(const char *url)=0
参数
参数 | 类型 | 含义 |
url | const char * | 要添加的图片元素 URL 地址,编码格式为 UTF8 |
警告
该接口已废弃,请使用 AddElement 接口代替。
AddElement
添加白板元素
virtual const char* AddElement(TEduBoardElementType type, TEduAddBoardBase *pTag, const TEduBoardElementOptions &options=TEduBoardElementOptions())=0
参数
参数 | 类型 | 含义 |
type | TEduBoardElementType | 元素类型,当设置 TEDU_BOARD_ELEMENT_IMAGE 时,等价于 addImageElement 方法 |
pTag | TEduAddBoardBase * | 网页或者图片的 URL,只支持 https 协议的网址或者图片 URL,编码格式为 UTF8,为 nullptr 表示不指定 URL |
options | const TEduBoardElementOptions & | 元素参数 |
返回
元素 ID
警告
当 type = TEDU_BOARD_ELEMENT_IMAGE,支持 png、jpg、gif、svg 格式的本地和网络图片,当 URL 是一个有效的本地文件地址时,该文件会被自动上传到 COS,上传进度回调 onTEBFileUploadStatus。
当 type = TEDU_BOARD_ELEMENT_CUSTOM_GRAPH,仅支持网络 URL,请与自定义图形工具 TEDU_BOARD_TOOL_TYPE_BOARD_CUSTOM_GRAPH 配合使用。
当 type = TEDU_BOARD_ELEMENT_AUDIO 或 TEDU_BOARD_ELEMENT_GLOBAL_AUDIO,仅支持网络 URL 对应类型和子类对象的匹配:TEDU_BOARD_ELEMENT_MATH_GRAPH > TEduAddBoardElementMathGraph TEDU_BOARD_ELEMENT_MATH_BOARD > TEduAddBoardElementMathBoard 其他类型暂时对应 > TEduAddBoardElementUrl。
RemoveElement
删除白板元素
virtual bool RemoveElement(const char *elementId)=0
参数
参数 | 类型 | 含义 |
elementId | const char * | 元素 ID |
返回
删除操作是否成功
GetBoardElementList
获取白板中所有元素
virtual TEduBoardElementInfoList* GetBoardElementList(const char *boardId)=0
参数
参数 | 类型 | 含义 |
boardId | const char * | 白板 ID,如果为空则获取当前白板所有元素 |
返回
白板元素列表
DeleteBoard
删除一页白板
virtual void DeleteBoard(const char *boardId=nullptr)=0
参数
参数 | 类型 | 含义 |
boardId | const char * | 要删除的白板 ID,为 nullptr 表示删除当前页 |
警告
只允许删除默认文件(文件 ID 为::DEFAULT)内的白板页,且默认白板页(白板 ID 为::DEFAULT)无法删除。
PrevStep
上一步 每个 Step 对应 PPT 的一个动画效果,若当前没有已展示的动画效果,则该接口调用会导致向前翻页。
virtual void PrevStep()=0
NextStep
下一步
virtual void NextStep()=0
介绍
每个 Step 对应 PPT 的一个动画效果,若当前没有未展示的动画效果,则该接口调用会导致向后翻页。
PrevBoard
向前翻页
virtual void PrevBoard(bool resetStep=false)=0
参数
参数 | 类型 | 含义 |
resetStep | bool | 指定翻到指定页以后是否重置 PPT 动画步数 |
介绍
若当前白板页为当前文件的第一页,则该接口调用无效。
NextBoard
向后翻页
virtual void NextBoard(bool resetStep=false)=0
参数
参数 | 类型 | 含义 |
resetStep | bool | 指定翻到指定页以后是否重置 PPT 动画步数 |
介绍
若当前白板页为当前文件的最后一页,则该接口调用无效。
GotoBoard
跳转到指定白板页
virtual void GotoBoard(const char *boardId, bool resetStep=false)=0
参数
参数 | 类型 | 含义 |
boardId | const char * | 要跳转到的白板页 ID |
resetStep | bool | 指定翻到指定页以后是否重置 PPT 动画步数 |
介绍
允许跳转到任意文件的白板页
GetCurrentBoard
获取当前白板页 ID
virtual const char* GetCurrentBoard()=0
返回
当前白板页 ID
介绍
返回值内存由 SDK 内部管理,用户不需要自己释放。
GetBoardList
获取所有文件的白板列表
virtual TEduBoardStringList* GetBoardList()=0
返回
所有文件的白板列表
警告
返回值不再使用时不需要自行 delete,但是务必调用其 release 方法以释放内存占用。
SetBoardRatio
设置当前白板页宽高比
virtual void SetBoardRatio(const char *ratio)=0
参数
参数 | 类型 | 含义 |
ratio | const char * | 要设置的白板宽高比 |
介绍
格式如: "4:3"、"16:9"
GetBoardRatio
获取当前白板页宽高比
virtual const char* GetBoardRatio()=0
返回
白板宽高比,格式与 SetBoardRatio 接口参数格式一致。
SetBoardScale
设置当前白板页缩放比例
virtual void SetBoardScale(uint32_t scale)=0
参数
参数 | 类型 | 含义 |
scale | uint32_t | 要设置的白板缩放比例 |
介绍
支持范围:[100,1600],实际缩放比: scale/100。
GetBoardScale
获取当前白板页缩放比例
virtual uint32_t GetBoardScale()=0
返回
白板缩放比例,格式与 SetBoardScale 接口参数格式一致。
SetFileScale
设置文件缩放比例
virtual void SetFileScale(const char *fileId, uint32_t scale)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | 文件ID |
scale | uint32_t | 要设置的文件缩放比例 |
介绍
支持范围: [100,1600],实际缩放比为: scale/100。
GetFileScale
获取文件缩放比例
virtual uint32_t GetFileScale(const char *fileId)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | 文件ID |
返回
文件缩放比例,格式与 SetFileScale 接口参数格式一致。
SetScaleToolRatio
设置白板缩放工具的缩放比例
virtual void SetScaleToolRatio(uint32_t scale)=0
参数
参数 | 类型 | 含义 |
scale | uint32_t | 如果设置为50,则每次滚轮滚动(或鼠标点击),缩放会在原来基础上进行50的缩放。 等价于 teduBoard.setBoardScale(teduBoard.getBoardScale() + 50) 或 teduBoard.setBoardScale(teduBoard.getBoardScale() - 50) |
SetScaleAnchor
移动当前白板缩放展示位置
virtual void SetScaleAnchor(double xRatio, double yRation)=0
参数
参数 | 类型 | 含义 |
xRatio | double | 白板左上角X坐标,取值[0, 1] |
yRation | double | 白板左上角Y坐标,取值[0, 1] |
SetBoardContentFitMode
设置白板内容自适应模式
virtual void SetBoardContentFitMode(TEduBoardContentFitMode mode)=0
参数
参数 | 类型 | 含义 |
mode | TEduBoardContentFitMode | 要设置的白板内容自适应模式 |
介绍
设置自适应模式后会影响所有后续白板内容操作,受影响接口包括:AddTranscodeFile。
GetBoardContentFitMode
获取白板内容自适应模式
virtual TEduBoardContentFitMode GetBoardContentFitMode()=0
返回
白板内容自适应模式
Snapshot
白板快照
virtual void Snapshot(const TEduBoardSnapshotInfo &info)=0
参数
参数 | 类型 | 含义 |
info | const TEduBoardSnapshotInfo & | 快照信息 |
SetNextTextInput
预设文本工具内容
virtual void SetNextTextInput(const char *input, bool focus)=0
参数
参数 | 类型 | 含义 |
input | const char * | 预设文本内容,取消预设则设置为空 |
focus | bool | 是否继续保持焦点 |
SetZoomCursorIcon
设置放大缩小工具的指针图标
virtual void SetZoomCursorIcon(const TEduBoardCursorIcon &zoomIn, const TEduBoardCursorIcon &zoomOut)=0
参数
参数 | 类型 | 含义 |
zoomIn | const TEduBoardCursorIcon & | 放大工具图标 |
zoomOut | const TEduBoardCursorIcon & | 缩小工具图标 |
SetRemoteCursorVisible
设置远端画笔在本地是否可见
virtual void SetRemoteCursorVisible(bool visible)=0
参数
参数 | 类型 | 含义 |
visible | bool | 远端画笔在本地是否可见 |
gotoStep
跳转到指定动画步数
virtual void gotoStep(bool visible)
参数 | 类型 | 含义 |
boardId | const char * | 白板 ID |
step | uint32_t | 动画步数 |
getBoardScroll
获取白板滚动位置
virtual void gotoStep(bool visible)
返回
白板滚动位置 scrollLeft, scrollTop 以百分比形式展示,范围在 [0,1]
文件操作接口
ApplyFileTranscode
发起文件转码请求
virtual void ApplyFileTranscode(const char *path, const TEduBoardTranscodeConfig &config=TEduBoardTranscodeConfig())=0
参数
参数 | 类型 | 含义 |
path | const char * | 要转码的文件路径,编码格式为 UTF8 |
config | const TEduBoardTranscodeConfig & | 转码参数 |
警告
本接口设计用于在接入阶段快速体验转码功能,原则上不建议在生产环境中使用,生产环境中的转码请求建议使用后台服务接口发起。
介绍
支持 PPT、PDF、Word 文件转码 PPT 文档默认转为 H5 动画,能够还原 PPT 原有动画效果,其它文档转码为静态图片 PPT 动画转码耗时约1秒/页,所有文档的静态转码耗时约0.5秒/页 转码进度和结果将会通过 onTEBFileTranscodeProgress 回调返回,详情参见该回调说明文档。
GetFileTranscodeProgress
主动查询文件转码进度
virtual void GetFileTranscodeProgress(const char *taskId)=0
参数
参数 | 类型 | 含义 |
taskId | const char * | 通过 onTEBFileTranscodeProgress 回调拿到的转码任务 taskId |
警告
该接口仅用于特殊业务场景下主动查询文件转码进度,调用 ApplyFileTranscode 后,SDK 内部将会自动定期触发 onTEBFileTranscodeProgress 回调,正常情况下您不需要主动调用此接口。
介绍
转码进度和结果将会通过 onTEBFileTranscodeProgress 回调返回,详情参见该回调说明文档。
AddTranscodeFile
添加转码文件
virtual const char* AddTranscodeFile(const TEduBoardTranscodeFileResult &result, bool needSwitch=true)=0
参数
参数 | 类型 | 含义 |
result | const TEduBoardTranscodeFileResult & | 文件转码结果 |
needSwitch | bool | 是否需要在文件加载成功后自动切换到该文件 |
返回
文件 ID
警告
当传入文件的 URL 重复时,返回 URL 对应的 文件 ID
在收到对应的 onTEBAddTranscodeFile 回调前,无法用返回的文件 ID 查询到文件信息。
介绍
TEduBoardTranscodeFileResult 的字段信息主要来自:
1. 使用客户端 ApplyFileTranscode 转码,直接将转码结果用于调用此接口。
2. (推荐)使用服务端 REST API 转码,只需传入转码回调结果的四个字段(title,resolution,url,pages),其服务端 > 客户端字段的对应关系为 Title > title、Resolution > resolution、ResultUrl > url、Pages > page,详情请参见 转码文档。
AddImagesFile
添加图片文件
virtual const char* AddImagesFile(const char **urls, uint32_t urlCount)=0
参数
参数 | 类型 | 含义 |
urls | const char ** | 要使用的图片 URL 列表,编码格式为 UTF8,不允许为 nullptr |
urlCount | uint32_t | 图片 URL 个数 |
返回
文件 ID
警告
当传入文件的 URL 重复时,文件 ID 返回为空字符串
在收到对应的 onTEBAddImagesFile 回调前,无法用返回的文件 ID 查询到文件信息。
介绍
文件加载成功后,将自动切换到该文件。
AddVideoFile
添加视频文件
virtual const char* AddVideoFile(const char *url)=0
参数
参数 | 类型 | 含义 |
url | const char * | 文件播放地址 |
返回
文件 ID
介绍
移动端支持 mp4/m3u8,桌面端支持 mp4/m3u8/flv/rtmp;触发状态改变回调 onTEBVideoStatusChange。
ShowVideoControl
显示或隐藏视频控制栏
virtual void ShowVideoControl(bool show)=0
参数
参数 | 类型 | 含义 |
show | bool | 是否显示 |
警告
全局控制项,对所有视频文件有效 隐藏和显示默认视频控制栏,默认显示系统自带的 video 控制栏,不同平台界面 UI 样式不同。
PlayVideo
播放视频
virtual void PlayVideo()=0
警告
只对当前文件有效
介绍
触发状态改变回调 onTEBVideoStatusChange,一般在使用自定义视频控制栏时使用。
PauseVideo
暂停视频
virtual void PauseVideo()=0
警告
只对当前文件有效
介绍
触发状态改变回调 onTEBVideoStatusChange,一般在使用自定义视频控制栏时使用。
SeekVideo
跳转(仅支持点播视频)
virtual void SeekVideo(double time)=0
参数
参数 | 类型 | 含义 |
time | double | 播放进度,单位秒 |
警告
只对当前文件有效
介绍
触发状态改变回调 onTEBVideoStatusChange,一般在使用自定义视频控制栏时使用。
SetSyncVideoStatusEnable
是否同步本地视频操作到远端
virtual void SetSyncVideoStatusEnable(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | 是否同步 |
警告
全局控制项,对所有视频文件有效。
介绍
play/pause/seek 接口以及控制栏事件的触发是否影响远端,默认为 true 一般情况下学生设置为 false,老师设置为 true。
StartSyncVideoStatus
内部启动定时器,定时同步视频状态到远端(仅限于 mp4)
virtual void StartSyncVideoStatus(uint32_t interval)=0
参数
参数 | 类型 | 含义 |
interval | uint32_t | 同步间隔,例如设置5秒 |
警告
只对当前文件有效
介绍
一般在老师端视频加载完成后调用,切换文件后内部自动销毁定时器。
StopSyncVideoStatus
停止同步视频状态
virtual void StopSyncVideoStatus()=0
警告
只对当前文件有效
EnableAudioControl
是否启用音频控制面板
virtual void EnableAudioControl(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | 启用或禁止 |
警告
禁止控制面板后,不能通过界面交互方式操作音频元素。
PlayAudio
播放音频
virtual void PlayAudio(const char *elementId)=0
参数
参数 | 类型 | 含义 |
elementId | const char * | 调用 addElement 方法返回的元素 ID |
介绍
触发状态改变回调 onTEBAudioStatusChange
PauseAudio
暂停音频
virtual void PauseAudio(const char *elementId)=0
参数
参数 | 类型 | 含义 |
elementId | const char * | 调用 addElement 方法返回的元素 ID |
介绍
触发状态改变回调 onTEBAudioStatusChange
SeekAudio
跳转
virtual void SeekAudio(const char *elementId, double time)=0
参数
参数 | 类型 | 含义 |
elementId | const char * | 调用 addElement 方法返回的元素 ID |
time | double | 播放进度,单位秒 |
介绍
触发状态改变回调 onTEBAudioStatusChange
SetAudioVolume
设置音频播放音量
virtual void SetAudioVolume(const char *elementId, double volume)=0
参数
参数 | 类型 | 含义 |
elementId | const char * | 调用 addElement 返回的元素 ID |
volume | double | 音频音量,取值范围[0-1] |
GetAudioVolume
获取音频播放音量
virtual double GetAudioVolume(const char *elementId)=0
参数
参数 | 类型 | 含义 |
elementId | const char * | 调用 addElement 返回的元素 ID |
返回
当前音量
AddH5File
添加 H5 页面
virtual const char* AddH5File(const char *url)=0
参数
参数 | 类型 | 含义 |
url | const char * | 网页地址 |
返回
文件 ID
说明
只支持展示,不支持互动。
DeleteFile
删除文件
virtual void DeleteFile(const char *fileId)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | 要删除的文件 ID |
介绍
文件 ID 为 nullptr 时表示当前文件,默认文件无法删除。
SwitchFile
切换文件
virtual void SwitchFile(const char *fileId, const char *boardId=nullptr, int32_t stepIndex=-1)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | 要切换到的文件 ID |
boardId | const char * | 切换文件并跳转到这个白板页 |
stepIndex | int32_t | 跳转到白板页并切换到这个动画 |
警告
该接口仅可用于文件切换,如果传入的 fileId 为当前文件 ID,SDK 会忽略其它参数,不做任何操作。
说明
文件 ID 为必填项,为 nullptr 或空字符串将导致文件切换失败。
GetCurrentFile
获取当前文件 ID
virtual const char* GetCurrentFile()=0
返回
当前文件 ID
GetFileInfo
获取白板中指定文件的文件信息
virtual TEduBoardFileInfo GetFileInfo(const char *fileId)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | |
返回
文件信息
警告
每次调用该接口的返回值内容都指向同一块内存,若需要保存返回信息,请在拿到返回值后及时拷贝走。
GetFileInfoList
获取白板中上传的所有文件的文件信息列表
virtual TEduBoardFileInfoList* GetFileInfoList()=0
返回
文件信息列表
警告
返回值不再使用时不需要自行 delete,但是务必调用其 release 方法以释放内存占用。
GetFileBoardList
获取指定文件的白板 ID 列表
virtual TEduBoardStringList* GetFileBoardList(const char *fileId)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | 文件 ID |
返回
白板 ID 列表
警告
返回值不再使用时不需要自行 delete,但是务必调用其 release 方法以释放内存占用。
GetThumbnailImages
获取指定文件的缩略图,不支持默认文件(fileId=#DEFAULT)
virtual TEduBoardStringList* GetThumbnailImages(const char *fileId)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | 文件 ID |
返回
缩略图 URL 列表
说明
用户在调用 rest api 请求转码时,需要带上 "thumbnail_resolution" 参数,开启缩略图功能,否则返回的缩略图 URL 无效。
ClearFileDraws
清空指定文件的所有白板涂鸦
virtual void ClearFileDraws(const char *fileId)=0
参数
参数 | 类型 | 含义 |
fileId | const char * | 文件 ID |
SetUserInfo
设置用户信息
virtual void SetUserInfo(const TEduUserInfo &userInfo)=0
参数
参数 | 类型 | 含义 |
userInfo | const TEduUserInfo & | 用户信息 |
SetPenAutoFittingMode
设置画笔自动拟合模式
virtual void SetPenAutoFittingMode(const TEduBoardPenFittingMode &penMode)=0
参数
参数 | 类型 | 含义 |
penMode | const TEduBoardPenFittingMode & | 画笔自动拟合模式 TEduBoardPenFittingMode |
AddSnapshotMark
生成板书图片 调用此接口可在后台生成当前白板的板书内容。
virtual void AddSnapshotMark()=0
SetMouseToolBehavior
设置鼠标工具行为 调用此接口设置鼠标工具行为。
virtual void SetMouseToolBehavior(const TEduMouseToolBehavior &turnPage)=0
参数
参数 | 类型 | 含义 |
turnPage | const TEduMouseToolBehavior & | - |
SetMathGraphType
设置几何画板元素调用此接口设置几何画板元素。
virtual void SetMathGraphType(const TEduBoardMathGraphType &graphType, bool setMouseToolopt=true)=0
参数
参数 | 类型 | 含义 |
graphType | const TEduBoardMathGraphType & | 几何图形类型 |
setMouseToolopt | bool | 是否切换到鼠标工具,默认为 true |
SetBoardRemark
设置白板备注 为某个白板设置备注, 当前白板可省略 boardId 参数。
virtual void SetBoardRemark(const char *boardId, const char *remark)=0
参数
参数 | 类型 | 含义 |
boardId | const char * | 白板 ID |
remark | const char * | 对应白板备注 |
GetBoardRemark
获取白板备注
virtual TEduBoardReMarkInfoList* GetBoardRemark(const char *boardId=nullptr)=0
参数
参数 | 类型 | 含义 |
boardId | const char * | 为空时,获取所有设置过白板备注 |
返回
返回白板备注列表
SetClassGroupEnable
开启分组模式
virtual void SetClassGroupEnable(bool enable)=0
参数
参数 | 类型 | 含义 |
enable | bool | 是否启用 |
GetClassGroupEnable
获取分组模式状态
virtual bool GetClassGroupEnable()=0
返回
true: 开启 false:未开启
SetClassGroup
添加分组
virtual void SetClassGroup(const char *groudId, char **boards, uint32_t boardCount, char **users, uint32_t userCount, const char *titleId, const char *currentBoardId=nullptr)=0
参数
参数 | 类型 | 含义 |
groudId | const char * | 分组 ID |
boards | char ** | 分组白板列表 |
boardCount | uint32_t | 分组白板个数 |
users | char ** | 分组用户列表 |
userCount | uint32_t | 分组用户个数 |
titleId | const char * | 分组标题 |
currentBoardId | const char * | 分组初始白板 |
ResetClassGroup
重置所有分组
virtual void ResetClassGroup()=0
RemoveClassGroup
删除分组
virtual void RemoveClassGroup(const char *groudId)=0
参数
参数 | 类型 | 含义 |
groudId | const char * | 分组 ID |
GetClassGroupInfoByGroupId
获取分组信息
virtual TEduBoardClassGroupInfo GetClassGroupInfoByGroupId(const char *groupId)=0
参数
参数 | 类型 | 含义 |
groupId | const char * | 分组 ID |
返回
分组信息
GetClassGroupIdByUserId
获取用户所在的分组
virtual TEduBoardStringList* GetClassGroupIdByUserId(const char *userId)=0
参数
参数 | 类型 | 含义 |
userId | const char * | 用户 ID |
RemoveUserInClassGroup
从分组中删除用户
virtual void RemoveUserInClassGroup(const char *group, const char *userId)=0
参数
参数 | 类型 | 含义 |
group | const char * | 分组 ID |
userId | const char * | 用户 ID |
RemoveBoardInClassGroup
从分组中删除白板
virtual void RemoveBoardInClassGroup(const char *group, const char *boardId)=0
参数
参数 | 类型 | 含义 |
group | const char * | 分组 ID |
boardId | const char * | 白板 ID |
GotoClassGroupBoard
分组内跳转分组模式下切换白板只能通过此方法进行,必须知道需要跳转的白板 ID。
virtual void GotoClassGroupBoard(const char *boardId)=0
参数
参数 | 类型 | 含义 |
boardId | const char * | 白板 ID |
SetClassGroupTitle
设置分组标题
virtual void SetClassGroupTitle(const char *groupId, const char *title)=0
参数
参数 | 类型 | 含义 |
groupId | const char * | 分组 ID |
title | const char * | 分组标题 |
AddBoardToClassGroup
新增白板 ID
virtual void AddBoardToClassGroup(const char *groupId, const char *boardId)=0
参数
参数 | 类型 | 含义 |
groupId | const char * | 分组 ID |
boardId | const char * | 白板 ID |
AddUserToClassGroup
添加用户到分组
virtual void AddUserToClassGroup(const char *groupId, const char *userId)=0
参数
参数 | 类型 | 含义 |
groupId | const char * | 分组 ID |
userId | const char * | 用户 ID |
GetAllClassGroupIds
获取所有分组 ID
virtual TEduBoardStringList* GetAllClassGroupIds()=0
返回
分组列表
背景接口
SetGlobalBackgroundColor
设置所有白板的背景色
virtual void SetGlobalBackgroundColor(const TEduBoardColor &color)=0
参数
参数 | 类型 | 含义 |
color | const TEduBoardColor & | 要设置的全局背景色 |
介绍
调用该接口将导致所有白板的背景色发生改变,新创建白板的默认背景色取全局背景色。
GetGlobalBackgroundColor
获取白板全局背景色
virtual TEduBoardColor GetGlobalBackgroundColor()=0
返回
全局背景色
SetBackgroundColor
设置当前白板页的背景色
virtual void SetBackgroundColor(const TEduBoardColor &color)=0
参数
参数 | 类型 | 含义 |
color | const TEduBoardColor & | 要设置的背景色 |
介绍
白板页创建以后的默认背景色由 SetDefaultBackgroundColor 接口设定。
GetBackgroundColor
获取当前白板页的背景色
virtual TEduBoardColor GetBackgroundColor()=0
返回
当前白板页的背景色
SetBackgroundImage
设置当前白板页的背景图片
virtual void SetBackgroundImage(const char *url, TEduBoardImageFitMode mode)=0
参数
参数 | 类型 | 含义 |
url | const char * | 要设置的背景图片 URL,编码格式为 UTF8 |
mode | TEduBoardImageFitMode | 要使用的图片填充对齐模式 |
介绍
当 URL 是一个有效的本地文件地址时,该文件会被自动上传到 COS。
SetBackgroundH5
设置当前白板页的背景 H5 页面
virtual void SetBackgroundH5(const char *url)=0
参数
参数 | 类型 | 含义 |
url | const char * | 要设置的背景 H5 页面 URL |
介绍
该接口与 SetBackgroundImage 接口互斥
setGlobalBackgroundPic
跳转到指定动画步数
virtual void setGlobalBackgroundPic(const char * url, const TEduBoardImageFitMode mode, int type)
参数 | 类型 | 含义 |
url | const char * | 资源链接 |
mode | TEduBoardImageFitMode | 图片填充对齐模式 |
type | int | 背景类型(0:背景图 1:H5) |
getGlobalBackgroundPic
跳转到指定动画步数
virtual void getGlobalBackgroundPic()
返回
TEduScrollPosition 白板背景图结构
LoadTeduBoardResource
预加载资源接口
EDUSDK_API void LoadTeduBoardResource(const char * fileUrl)
参数 | 类型 | 含义 |
fileUrl | const char * | fileUrl 预加载文件的 url 路径 |
SetTeduBoardResourceConfig
预加载资源接口配置信息
EDUSDK_API void SetTeduBoardResourceConfig(unsigned int sdkAppId, const char * userId)
参数 | 类型 | 含义 |
sdkAppId | unsigned int | 互动白板应用 ID |
userId | const char * | 用户 ID |