互动白板
腾讯云互动白板(Tencent Interactive Whiteboard,TIW)提供整套完备的多人实时白板互动服务,打破线上教学中师生信息传递障碍,拥有比面授教学板书更丰富、直观和多样的功能,帮您高度还原线下面授教学的互动体验,显著提升线上教学质量。
主要功能

结构体

class  TEduBoardController
 白板控制器 更多...
 

创建销毁实例

typedef long(__stdcall * PFNOnProgress) (unsigned long dwEvent, unsigned long dwReadByte, unsigned long dwTotalByte, void *pParam)
 预加载资源下载回调进度 更多...
 
EDUSDK_API TEduBoardControllerCreateTEduBoardController (bool disableCefInit=false, const char *cefRenderPath=nullptr)
 创建白板控制类实例 更多...
 
EDUSDK_API void DestroyTEduBoardController (TEduBoardController **ppBoardController)
 销毁白板控制类 更多...
 
EDUSDK_API void ClearTEduBoardSDKEnv ()
 清理白板SDK环境,在不使用白板后调用以释放资源 更多...
 

日志相关接口

EDUSDK_API const char * GetTEduBoardVersion ()
 获取 SDK 版本号 更多...
 
EDUSDK_API bool SetTEduBoardLogFileDir (const char *logDir=nullptr)
 设置白板日志文件存储目录路径 更多...
 
EDUSDK_API void SetTEduBoardCacheFileDir (const char *cacheDir=nullptr)
 设置白板sdk缓存文件目录 更多...
 

高级功能接口

EDUSDK_API bool EnableTEduBoardOffscreenRender (uint32_t maxFps=30)
 启用白板离屏渲染 更多...
 
EDUSDK_API bool EnableTEduBoardCrashReport ()
 启用白板Crash上报 更多...
 
EDUSDK_API void * GetTEduBoardRenderProcessHandler ()
 获取 SDK 内部的 CefRenderProcessHandler 更多...
 

课件预加载

EDUSDK_API void LoadTEduBoardResource (const char *fileUrl, int expireTime=259200, PFNOnProgress pFNOnProgress=nullptr)
 预加载资源接口 更多...
 
EDUSDK_API void SetTEduBoardResourceConfig (unsigned int sdkAppId, const char *userId)
 设置sdkAppId和userId 更多...
 
EDUSDK_API void LoadCustomResource (const char *fileUrl, int resourceType, int expireTime=259200, PFNOnProgress pFNOnProgress=nullptr)
 预加载自定义资源接口 更多...
 

详细描述

白板功能的主要接口类

类型定义说明

◆ PFNOnProgress

typedef long(__stdcall* PFNOnProgress) (unsigned long dwEvent, unsigned long dwReadByte, unsigned long dwTotalByte, void *pParam)

预加载资源下载回调进度

参数
dwEvent下载状态 0:下载中;1:下载完成;2下载失败
dwReadByte已下载大小
dwTotalByte需下载内容大小
pParam下载的文件名
注解
支持多个下载认为同时下载

函数说明

◆ ClearTEduBoardSDKEnv()

EDUSDK_API void ClearTEduBoardSDKEnv ( )

清理白板SDK环境,在不使用白板后调用以释放资源

警告
该接口必须在主线程调用
注解
请在确保不再使用白板功能时才调用该接口(建议在应用程序退出前调用),调用了该接口之后,CreateTEduBoardController接口不再有效

◆ CreateTEduBoardController()

EDUSDK_API TEduBoardController* CreateTEduBoardController ( bool  disableCefInit = false,
const char *  cefRenderPath = nullptr 
)

创建白板控制类实例

参数
disableCefInit是否禁用 CEF 框架初始化,通常传默认值即可
cefRenderPath使用 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指向白板控制类指针

ppBoardController 指针会被自动置空

◆ EnableTEduBoardCrashReport()

EDUSDK_API bool EnableTEduBoardCrashReport ( )

启用白板Crash上报

返回
启用白板Crash上报是否成功
警告
该接口必须要在第一次调用CreateTEduBoardController之前调用才有效,否则将会失败

◆ EnableTEduBoardOffscreenRender()

EDUSDK_API bool EnableTEduBoardOffscreenRender ( uint32_t  maxFps = 30)

启用白板离屏渲染

参数
maxFps离屏渲染的最大帧率,取值[1, 60]
返回
启用离屏渲染是否成功
警告
该接口必须要在第一次调用 CreateTEduBoardController 之前调用才有效,否则将会失败

启用离屏渲染时,SDK 不再创建白板 VIEW,而是通过 onTEBOffscreenPaint 回调接口将白板离屏渲染的像素数据抛出

◆ GetTEduBoardRenderProcessHandler()

EDUSDK_API void* GetTEduBoardRenderProcessHandler ( )

获取 SDK 内部的 CefRenderProcessHandler

返回
SDK 内部的 CefRenderProcessHandler
参见
CreateTEduBoardController

本接口详细使用方法参见 CreateTEduBoardController 接口说明

◆ GetTEduBoardVersion()

EDUSDK_API const char* GetTEduBoardVersion ( )

获取 SDK 版本号

返回
SDK 版本号

返回值内存由 SDK 内部管理,用户不需要自己释放

◆ LoadCustomResource()

EDUSDK_API void LoadCustomResource ( const char *  fileUrl,
int  resourceType,
int  expireTime = 259200,
PFNOnProgress  pFNOnProgress = nullptr 
)

预加载自定义资源接口

参数
fileUrl预加载自定义文件的url路径
resourceType预加载自定义资源类型1: 图片 2:多媒体
expireTime过期时间单位秒,-1表示永久有效,默认259200秒(3天),超出过期时间后,本地预加载资源会失效
注解
在课前课中都可以调用

◆ LoadTEduBoardResource()

EDUSDK_API void LoadTEduBoardResource ( const char *  fileUrl,
int  expireTime = 259200,
PFNOnProgress  pFNOnProgress = nullptr 
)

预加载资源接口

参数
fileUrl预加载文件的url路径
expireTime过期时间单位秒,-1表示永久有效,默认259200秒(3天),超出过期时间后,本地预加载资源会失效
注解
在课前课中都可以调用

◆ SetTEduBoardCacheFileDir()

EDUSDK_API void SetTEduBoardCacheFileDir ( const char *  cacheDir = nullptr)

设置白板sdk缓存文件目录

参数
cacheDir要设置的白板sdk缓存文件存储目录路径,UTF8 编码,为空或 nullptr 表示使用默认路径
返回
设置白板sdk缓存文件存储是否成功
警告
该接口必须要在第一次调用 CreateTEduBoardController 之前调用才有效,否则将会失败

◆ SetTEduBoardLogFileDir()

EDUSDK_API bool SetTEduBoardLogFileDir ( const char *  logDir = nullptr)

设置白板日志文件存储目录路径

参数
logDir要设置的白板日志文件存储目录路径,UTF8 编码,为空或 nullptr 表示使用默认路径
返回
设置白板日志文件存储目录是否成功
警告
该接口必须要在第一次调用 CreateTEduBoardController 之前调用才有效,否则将会失败
  • 默认路径,Windows下为:"%AppData%/../Local/TEduBoard"
  • 默认路径,Linux下为:"~/TEduBoard"

◆ SetTEduBoardResourceConfig()

EDUSDK_API void SetTEduBoardResourceConfig ( unsigned int  sdkAppId,
const char *  userId 
)

设置sdkAppId和userId

参数
sdkAppId
userId
注解
在课前课中都可以调用