文件转码
  • 平台类型
  • 框架 / 引擎

实现文件转码功能

更新时间:2020-08-01 15:44

1 初始化SDK

初始化SDK需要使用 AppID 和 AppSign,获取 AppID 和 AppSign 指引

    ZegoDocsViewConfig * config = [ZegoDocsViewConfig new];
    config.appSign = appSign; //申请到的appSign
    config.appID = appID;//申请到的appID
    config.dataFolder = kZegoAppDCDataPath;//SDK相关数据目录
    config.isTestEnv = YES; //测试环境,根据申请的appid设置
    config.cacheFolder = [ZegoTools cachePath];//SDK相关缓存目录
    config.logFolder = kZegoAppDCDataPath;//SDK相关日志目录

    [[ZegoDocsViewManager sharedInstance] initWithConfig:config
                                                                             completionBlock:^(ZegoDocsViewError errorCode) {
         if (errorCode == ZegoDocsViewSuccess) {
             NSLog(@"初始化SDK 成功");
         } else {
             NSLog(@"初始化SDK 失败 %ld",errorCode);
         }
     }];

2 加载文件

注意:此方式可能需要文件转码权限,如遇到加载失败的情况,请先查看文档。可能的失败场景如下:

  1. 无加载文件转码所需权限。
  2. AppID & AppSign与要加载的文件转码不匹配。
  3. 文件转码在正式环境而初始化的SDK在测试环境。
    // 1. init
    self.docView = [[ZegoDocsView alloc] init]; //初始化文件View
    self.docView.backgroundColor = UIColor.whiteColor; //设置文件View背景颜色
    [self.docView setDelegate:self]; //设置文件View 代理通知
    [self.view addSubview:self.docView]; //添加到自己需要展示的View 上

    //2.设置可视区域的Size
    self.docView.frame = CGRectMake(0, 0, 100, 100);

    //3.加载文件
    [self.docView loadFileWithFileID:@"fileID" //后台获取到文件ID
                             authKey:@"" //鉴权key。可以为空。根据你所申请环境是否需要鉴权填入。最好是通过后台获取 
                     completionBlock:^(ZegoDocsViewError errorCode) {

    }];

3 上传文件

上传文件,分两个阶段进行:

  1. 上传文件至服务器。
  2. 文件转码成展示文件类型。
     [[ZegoDocsViewManager sharedInstance] uploadFile:[url path]   //文件的绝对路径,可以根据iOS API 获得
                                                                               renderType:ZegoDocsViewRenderTypeVector  //上传文件后转码后渲染模式类型,默认为ZegoDocsViewRenderTypeVector格式
                                                                       completionBlock:^(ZegoDocsViewUploadState state, ZegoDocsViewError errorCode, NSDictionary * _Nonnull infoDictionary) {
     if (errorCode == ZegoDocsViewSuccess) {
             if (state == ZegoDocsViewUploadStateUpload) {
                 // 上传中...
                 if(upload_percent.intValue == 1){
                     // 转码中...
                 }
             } else if (state == ZegoDocsViewUploadStateConvert){
                 // 转换成功
             }
         } else {
             // 上传失败
         }
     }];

注意:如果想实现在文件上绘制以及多端联动功能,需要引入互动白板功能,详情查看集成ZegoDocsView SDK