回放端API接口
引入头文件
#import <QXCClassSDK/QXCPlayBackSDKHeader.h>
初始化SDK 并设置代理;更多代理API说明,请点击此处。
[QXCPlayBackSDKHeader getInstance].delegate = self;
获取直播回放
UIViewController
并展示[self presentViewController:[QXCPlayBackSDKHeader getInstance].getPlayBackVC animated:YES completion:nil];
调用进入直播回放接口,并传入必要参数
QXCClassParams *params = [[QXCClassParams alloc] initWithToken:@"52a87d98ab645dc84425|0|1594207055|33|2|jL6Vs3f003c0lxrD8|0" userName:@"千学云"]; [[QXCPlayBackSDKHeader getInstance] enterPlayBackClass:params];
退出直播回放,用户点击直播回放返回按钮时,需要实现代理
closePlayBack
方法,并调用清空接口-(void)closePlayBack{ [[QXCPlayBackSDKHeader getInstance].getPlayBackVC dismissViewControllerAnimated:YES completion:nil]; [[QXCPlayBackSDKHeader getInstance] clearPlayBackClass]; }
整体代码
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];
回放下载
千学云提供了回放的下载、暂停、删除等功能的相应接口,可以根据自己的业务需求选择接入
导入头文件
#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];