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

内容介绍

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

平台和版本支持

平台类型
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和userId
TEduBoardResourceController.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。