回放端API接口

  1. 引入头文件

    #import <QXCClassSDK/QXCPlayBackSDKHeader.h>
    
  2. 初始化SDK 并设置代理;更多代理API说明,请点击此处

    [QXCPlayBackSDKHeader getInstance].delegate = self;
    
  3. 获取直播回放UIViewController 并展示

    [self presentViewController:[QXCPlayBackSDKHeader getInstance].getPlayBackVC animated:YES completion:nil];
    
  4. 调用进入直播回放接口,并传入必要参数

    QXCClassParams *params = [[QXCClassParams alloc] initWithToken:@"52a87d98ab645dc84425|0|1594207055|33|2|jL6Vs3f003c0lxrD8|0" userName:@"千学云"];
    [[QXCPlayBackSDKHeader getInstance] enterPlayBackClass:params];
    
  5. 退出直播回放,用户点击直播回放返回按钮时,需要实现代理 closePlayBack方法,并调用清空接口

    -(void)closePlayBack{
        [[QXCPlayBackSDKHeader getInstance].getPlayBackVC dismissViewControllerAnimated:YES completion:nil];
        [[QXCPlayBackSDKHeader getInstance] clearPlayBackClass];
    }
    
  6. 整体代码

    QXCClassParams *params = [[QXCClassParams alloc] initWithToken:@"52a87d98ab645dc84425|0|1594207055|33|2|jL6Vs3f003c0lxrD8|0" userName:@"千学云"];
    [self presentViewController:[QXCPlayBackSDKHeader getInstance].getPlayBackVC animated:YES completion:nil];
    [[QXCPlayBackSDKHeader getInstance] enterPlayBackClass:params];
    
  7. 回放下载

    千学云提供了回放的下载、暂停、删除等功能的相应接口,可以根据自己的业务需求选择接入

    导入头文件

    #import <QXCClassSDK/QXCClassDownloadHeader.h>
    
    • 下载直播回放
      -(void)startDownload{
         KCDDownloadParams *params = [[KCDDownloadParams alloc] init];
         params.progressBlock = ^(NSDictionary * _Nonnull dic) {
             NSLog(@"下载中:");
             self.downLoadProLabel.text = [NSString stringWithFormat:@"下载进度:%lldMB / %lldMB  速度:%lldKB",([[dic valueForKey:@"finishSize"] longLongValue] / 1024 / 1024),([[dic valueForKey:@"totalSize"] longLongValue] / 1024 / 1024),([[dic valueForKey:@"speed"] longLongValue] / 1024 )];
         };
         params.successBlock = ^(NSDictionary * _Nonnull dic) {
             NSLog(@"下载完成");
         };
         params.faildBlock = ^(NSDictionary * _Nonnull dic) {
             NSLog(@"下载失败");
         };
         params.token = @"c1428296fbd3e71de375|0|1584153069|7|1|42WEK3ef814cm5EM3|0";
         [[QXCClassDownloadHeader getInstance] startDownloadClass:params];
      }
      
    • 相关说明

KCDDownloadParams字段说明:

字段名 类型 说明
exParamsDic NSMutableDictionary 外部通用字典参数,会在完成、进度、失败时传会外部
token String 下载直播回放的鉴权参数
progressBlock Block 下载进度实时返回block(速度,下载进度等信息,详见下表)
successBlock Block 下载完成返回block(直播回放总大小等信息,详见下表)
faildBlock Block 下载失败block(错误信息等,详见下表)

progressBlock返回字典说明:

字段名 类型 说明
totalSize Int 直播回放总大小(单位:B)
finishSize Int 当前已下载大小(单位:B)
speed Int 实时下载速度(单位:B)
exParamsDic NSMutableDictionary 外部通用字典参数

faildBlock返回字典说明:

字段名 类型 说明
exParamsDic NSMutableDictionary 外部通用字典参数
faildType Int 错误类型(详见下表)

successBlock返回字典说明:

字段名 类型 说明
exParamsDic NSMutableDictionary 外部通用字典参数
totalSize Int 直播回放总大小(单位:B)

faildType错误类型说明:

错误编码 说明
0 未知错误
1001 下载链接断开
2001 下载文件错误
3001 文件资源错误
3002 文件资源错误
3003 查询下载信息错误
4001 连续10秒无下载速度
5001 没有足够的空间
6001 Params参数错误
  • 暂停正在下载的回放

    -(void)pauseDownload{
        KCDDownloadParams *params = [[KCDDownloadParams alloc] init];
        params.token = @"c1428296fbd3e71de375|0|1584153069|7|1|42WEK3ef814cm5EM3|0";
        [[QXCClassDownloadHeader getInstance] pauseDownloadClass:params];
    }
    
  • 删除已经下载的回放

    -(void)deleteDownload{
        KCDDownloadParams *params = [[KCDDownloadParams alloc] init];
        params.successBlock = ^(NSDictionary * _Nonnull dic) {
            NSLog(@"删除成功");
        };
        params.faildBlock = ^(NSDictionary * _Nonnull dic) {
            NSLog(@"删除失败");
        };
        params.token = @"c1428296fbd3e71de375|0|1584153069|7|1|42WEK3ef814cm5EM3|0";
        [[QXCClassDownloadHeader getInstance] deleteDownloadClass:params];
    }
    
  • 进入缓存完成的回放

    进入缓存完成的回放传入参数和进入回放类似,只是调用enterCachePlayBackClass 接口来进入回放

     QXCClassParams *params = [[QXCClassParams alloc] init];
     params.token = @"c1428296fbd3e71de375|0|1584153069|7|1|42WEK3ef814cm5EM3|0";
     [self presentViewController:[QXCPlayBackSDKHeader getInstance].getPlayBackVC animated:YES completion:nil];
     [[QXCPlayBackSDKHeader getInstance] enterCachePlayBackClass:params];
    
  • 根据token获取直播下载多少

    拓展接口,方便获取直播已经下载了多少(单位:B)

    KCDDownloadParams *params = [[KCDDownloadParams alloc] init];
    params.token = @"c1428296fbd3e71de375|0|1584153069|7|1|42WEK3ef814cm5EM3|0";
    NSInteger totalSize = [[QXCClassDownloadHeader getInstance] getFinishSizeByParams:params];
    
  • 根据token获取直播是否下载完成

    KCDDownloadParams *params = [[KCDDownloadParams alloc] init];
    params.token = @"c1428296fbd3e71de375|0|1584153069|7|1|42WEK3ef814cm5EM3|0";
    BOOL flag = [[QXCClassDownloadHeader getInstance] checkDownloadFinishByParams:params];
    

results matching ""

    No results matching ""