腾讯云互动白板Windows-教育服务解决方案

集成 SDK

本文主要介绍如何快速的将腾讯云互动白板 SDK 集成到您的项目中。

开发环境要求

Windows 7 及以上版本 Windows 操作系统Microsoft Visual Studio 2015 及以上版本,推荐使用 Microsoft Visual Studio 2015Windows SDK 8.0 及以上版本,推荐使用 Windows SDK 8.1

集成 互动白板 SDK

步骤1:下载 Windows SDK下载 SDK,解压打开工程文件,编译会自动下载 所需要的sdk文件,并保存在SDK目录:

目录/文件名 说明
Demo C++ Demo 源码
SDK/TEduBoard/include/TEduBoard.h 互动白板 SDK 头文件
SDK/TEduBoard/lib/TEduBoard.lib 互动白板 SDK 导入库
SDK/TEduBoard/lib/TEduBoard.dll 互动白板 SDK 动态链接库
SDK/TEduBoard/lib/TEduBoardRender.exe 互动白板 SDK 渲染程序
SDK/TEduBoard/lib/其他文件 CEF 框架及其依赖文件
SDK/其他目录 Demo依赖的其他SDK

本文示例中,您只需要使用 SDK/TEduBoard 目录下的 互动白板 SDK 文件即可。步骤2:导入 SDK 到项目在 Visual Studio 开发环境下,按如下步骤导入 SDK:1. 从菜单中依次选择视图>解决方案资源管理器。2. 在解决方案资源管理器中,右键单击要导入 SDK 的项目名称。3. 在弹出菜单内单击属性选项,弹出项目属性对话框。4. 从左侧配置属性列表中,选择VC++目录项。5. 将 SDK 头文件所在目录路径添加到右侧包含目录中。6. 将 SDK 导入库所在目录路径添加到右侧库目录中。7. 在需要使用 SDK 的源码文件内添加如下代码导入 SDK。

// 引入 SDK 头文件#include "TEduBoard.h"
// 链接 SDK#pragma comment(lib, "TEduBoard.lib")

步骤3:白板创建及销毁
白板控制器创建及初始化使用如下代码创建并初始化白板控制器:

// 创建白板控制器TEduBoardController *boardCtrl = CreateTEduBoardController();
// 添加回调boardCtrl->AddCallback(myCallback); // myCallback 为实例化 TEduBoardCallback 接口的回调接收器
// 初始化授权参数结构体TEduBoardInitParam initParam;initParam.sdkAppId = SDK_APP_ID; // 填写您的 SDKAppIDinitParam.userId = USER_ID; // 填写用户 IDinitParam.userSig = USER_SIG; // 填写用户签名
// 初始化白板控制器(配合腾讯云 IMSDK 4.0 以上版本使用时,initParam 参数可以不填)boardCtrl->Init(initParam, ROOM_ID);

监听白板关键事件白板事件回调接口 TEduBoardCallback 的 onTEBError 和 onTEBWarning 回调方法内监听白板事件 onTEBError 错误详情onTEBWarning 警告详情

/*** 白板错误回调* * @param code 错误码,参见 TEduBoardErrorCode 定义* @param msg 错误信息,编码格式为 UTF8*/virtual void onTEBError(TEduBoardErrorCode code,const char* msg)		
/*** 白板警告回调** @param code 警告码,参见 TEduBoardWarningCode 定义* @param msg 警告信息,编码格式为 UTF8*/virtual void onTEBWarning(TEduBoardWarningCode code,const char* msg)

白板窗口获取及显示在 onTEBInit 回调方法内,使用如下代码获取并显示白板窗口:

// SDK所有回调都在主线程内执行,因此我们可以在回调里直接执行 UI 操作
// 获取白板窗口句柄HWND boardHwnd = boardCtrl->GetBoardRenderView();
// 获取并计算父窗口客户区大小RECT parentRect;::GetClientRect(PARENT_HWND, &parentRect); // PARENT_HWND 为要将白板窗口嵌入其中显示的容器窗口句柄int cx = parentRect.right - parentRect.left;int cy = parentRect.bottom - parentRect.top;
// 设置白板为子窗口::SetParent(boardHwnd, PARENT_HWND);
// 更改白板大小和位置boardCtrl->SetBoardRenderViewPos(0, 0, cx, cy);
// 显示白板窗口::ShowWindow(boardHwnd, SW_SHOW);

WM_SIZE 事件处理在父窗口的 WM_SIZE 事件处理函数内,使用如下代码调整白板窗口大小与父窗口适配:

// 获取白板窗口句柄HWND boardHwnd = boardCtrl->GetBoardRenderView();
// 获取并计算父窗口客户区大小RECT parentRect;::GetClientRect(PARENT_HWND, &parentRect);int cx = parentRect.right - parentRect.left;int cy = parentRect.bottom - parentRect.top;
// 更改白板大小boardCtrl->SetBoardRenderViewPos(0, 0, cx, cy);

白板窗口关闭需要关闭白板窗口时,使用如下代码关闭:

// 销毁白板控制器DestroyTEduBoardController(&boardCtrl);

步骤4:白板数据同步白板在使用过程中,需要在不同的用户之间进行数据同步(涂鸦数据等),SDK 默认使用 IMSDK 作为信令通道,您需要自行实现 IMSDK 的初始化、登录、加入群组操作,确保白板初始化时,IMSDK 已处于所指定的群组内。TIM 同步信令通道TIM 相关文档

腾讯云官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

发表评论