腾讯云互动白板课件预加载-教育服务解决方案

内容介绍

本文主要介绍如何使用白板课件预加载功能。

平台和版本支持

平台类型 Android Windows iOS Mac OS Web
平台版本 11.4+ 11.0+
TEduBoardSDK 版本 2.6.9.145+ 2.6.9.240+ 2.6.9.92+ 2.6.9.92+
TIWCache 版本 1.0.0.78+ 1.0.0.72+ 1.0.0.72+

说明对于不支持的系统版本,系统平台和互动白板版本,课件加载则正常从公网加载课件。

工作原理



如何使用

1. 文件转码申请打压缩包

在 发起课件转码 的时候需要将 CompressFileType 设置为 zip,在 转码结果 中 CompressFileUrl 字段会生成一个 zip 包 url。发起转码示例(Python):

req = models.CreateTranscodeRequest()params = {    "SdkAppId": 1400127140,    "CompressFileType": "zip" // 申请转码,并对转码结果进行打zip包    ... // 其他参数}req.from_json_string(json.dumps(params))
resp = client.CreateTranscode(req)

2. 获取课件转码结果

课件转码结果可以通过 主动查询 或者 回调方式 获取。结果示例:

{  "Response": {    "TaskId": "0poq8tn4ts23317ta77c",    "ResultUrl": "https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/h5/index.html",    "CompressFileUrl": "https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/0poq8tn4ts23317ta77c.zip"    ... // 其他结果参数  }}

3. 课件本地预加载

3.1 课前使用

课前由于还没有互动白板对象,互动白板 SDK 提供了 TEduBoardResourceController 类来支持课件预加载。Android

// 设置sdkAppId和userIdTEduBoardResourceController.setConfig(sdkAppId, userId);// 加载课件zip包TEduBoardResourceController.loadResource(context, "https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/0poq8tn4ts23317ta77c.zip");

iOS / Mac

TEduBoardResourceConfig *config = [[TEduBoardResourceConfig alloc] init];config.sdkAppId = self.sdkAppId;config.userId = self.userId;[TEduBoardResourceController setConfig:config];[TEduBoardResourceController loadResource:@"https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/0poq8tn4ts23317ta77c.zip"];

Windows

std::string strUserID = strUserID;unsigned int sdkAppid = sdkAppid;SetTeduBoardResourceConfig(sdkAppid, strUserID.c_str());std::string strUrl = "https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/0poq8tn4ts23317ta77c.zip";LoadTeduBoardResource(strUrl.c_str());

3.2 课中使用

直接使用白板对象上的 loadResource 接口进行课件预加载。Android

// 加载课件zip包teduBoardController.loadResource("https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/0poq8tn4ts23317ta77c.zip");

iOS / Mac

[self.boardController loadResource:@"https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/0poq8tn4ts23317ta77c.zip"];

Windows

std::string strUrl = "https://whiteboard-cam-test-1257307760.cos.ap-nanjing.myqcloud.com/doc/0poq8tn4ts23317ta77c_tiw/0poq8tn4ts23317ta77c.zip";LoadTeduBoardResource(strUrl.c_str());

3.3 课件预加载状态回调

Android

TIWCacheManager.getInstance(Context).setListener(new TIWCacheListener() {  @Override  public void onTIWCacheCoursewareDownloaded(String zipUrl, int errcode, String message) {
}});

iOS / Mac

[[TIWCacheManager shareInstance] setDelegate:delegate];// override 回调方法- (void)onTIWCacheCoursewareDownloaded:(NSString *)zipUrl errorCode:(uint32_t)errcode message:(NSString *)message;

4. 互动白板中添加转码文件

完成以上3步后,只需要调用 addTranscodeFile 接口将转码后的结果添加到白板中,即可使用课件从本地加载的能力。

// 1. 具体的参数请以第2步查询的结果为准。// 2. addTranscodeFile 接口使用方式请参考各个平台提供的接口为准。teduBoard.addTranscodeFile({    pages: Pages,    resolution: Resolution,    title: Title,    url: ResultUrl})

注意事项

1. 在互动白板转码控制台上进行文档转码的存储桶配置,不能直接使用互动白板默认的公共存储桶。2. 课件预加载的暂只支持以 zip 格式的课件,所以在发起转码的时候需要将 CompressFileType 设置为 zip。3. 课件预加载的 zip 包课件只在本地设备上保留7天,7天过后互动白板将在本地缓存中清除 zip 包课件。4. iOS/Android 对同一个课件进行预加载,只会预加载一次。例如:本地设备缓存中已经存在 CompressFileUrl 参数对应的课件A,当使用相同的CompressFileUrl 参数再次调用loadResource 去加载课件A时,会直接跳过。5. Windows 对同一个课件进行预加载,会覆盖缓存中相同的课件。例如:  本地设备缓存中已经存在由 CompressFileUrl 参数指定的课件B,当使用相同的CompressFileUrl 参数再次调用 LoadTeduBoardResource 去加载课件B时,会覆盖缓存中的课件B。

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

发表评论