有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

互动白板控制器

互动白板控制器,请参考 互动白板控制器 文档。

创建销毁实例

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