内容介绍
本文主要介绍如何使用白板课件预加载功能。
平台和版本支持
平台类型 | 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. 文件转码申请打压缩包
发起转码示例(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() {@Overridepublic 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。