# iOS 云资源下载、上传SDK
# 简介
下载 iOS SDK支持下载视频,音频(m3u8)文件下载。
上传iOS SDK 支持视频、音频、Word/PDF文档、PPT 4种类型的资源上传。具体api参考ESUploadManager.h
、ESUploadTask.h
。
# 开发环境
- 支持iOS 9.0以上版本。
- XCode 11以上版本。
- 依赖库:
Qiniu
# 快速集成
通过 CocoaPods (opens new window) 安装集成。
# 接入准备
请将下面代码加入到您的 Podfile 中:
pod 'ESCloudPlayerSDK'
在项目根目录下执行下列任意命令,集成最新的 SDK:
$ pod update
或者
$ pod install --repo-update
# 开发指南
# 云资源下载
单任务下载
ESM3U8DownloadInfo *downloadInfo = [[ESM3U8DownloadInfo alloc] initWithFileName:@"xxxxx" resNo:@"xxxxx" token:@"xxxxx" definition:ESCloudPlayerVideoDefinitionSD];
[self.m3u8Mgr downloadM3u8:downloadInfo handler:^(ESM3U8DownloadTask * _Nonnull task) {
}];
多任务下载
NSArray<ESM3U8DownloadInfo *> *infos = @[...];
[self.m3u8Mgr multiDownloadM3u8:infos handler:^(NSArray<ESM3U8DownloadTask *> * _Nonnull tasks) {
}];
# 下载管理
# - start:
- 描述:开始(恢复)下载某个任务。
- 参数:资源No。
# - startWithTask:
- 描述:开始(恢复)下载某个任务。
- 参数:
ESM3U8DownloadTask
# - suspend:handler:
- 描述:暂停下载某个任务。
- 参数:资源No。
# - cancel:handler:
- 描述:取消下载某个任务。
- 参数:资源No。
# - remove:handler:
- 描述:移除下载某个任务。
- 参数:
resNo
:资源No,completely
:删除沙盒文件
# 下载回调
# - progress:handler:
- 描述:下载进度回调
# - success:handler:
- 描述:下载成功回调
# - failure:handler:
- 描述:下载失败回调
# 资源播放
# - preparePlayM3U8FileWithResNo:handler:
- 描述:下载资源准备播放
resNo
:资源No
# - stopPlayM3U8FileWithHandler
- 描述:下载资源停止播放
resNo
:资源No
# 云资源上传
初始化
ESUploadManager *uploadMgr = [ESUploadManager defaultManager];
//设置上传服务器域名
uploadMgr.baseURL = [NSURL URLWithString:SCHOOL_HOST];
//设置开始上传接口路径
uploadMgr.startPath = START_UPLOAD;
//设置完成上传接口路径
uploadMgr.finishPath = FINISH_UPLOAD;
单任务上传
ESUploadInfo *uploadInfo = [[ESUploadInfo alloc]initWithFileURL:[NSURL fileURLWithPath:filePath] fileName:fileName fileHash:fileHash];
uploadInfo.extno = extno;
ESUploadTask *task = [uploadMgr upload:info];
[task progress:YES handler:^(ESUploadTask *t) {
}];
[task success:YES handler:^(ESUploadTask *t) {
}];
[task failure:YES handler:^(ESUploadTask *t) {
}];
多任务上传
NSArray<ESUploadInfo *>infos = @[...];
NSArray<ESUploadTask *> *tasks = [self.uploadMgr multiUpload:infks];
[tasks enumerateObjectsUsingBlock:^(ESUploadTask * _Nonnull task, NSUInteger idx, BOOL * _Nonnull stop) {
[task progress:YES handler:^(ESUploadTask *t) {
}];
[task success:YES handler:^(ESUploadTask *t) {
}];
[task failure:YES handler:^(ESUploadTask *t) {
}];
}];
[ESUploadManager defaultManager]
默认为单例模式,也可自行初始化。
# 上传任务管理
ESUploadManager
可上次任意文件类型,但只支持视频、音频、Word/PDF文档、PPT文件转码。
# 字段
# baseURL
- 类型:
NSURL
- 描述:上传服务器域名。
- 必需:是
# startPath
- 类型:
NSString
- 描述:开始上传接口路径。
- 必需:是
# finishPath
- 类型:
NSString
- 描述:完成上传接口路径。
- 必需:是
# status
- 类型:枚举
ESUploadStatus
- 描述:上传状态,参考
ESUploadCommon.h
。
# speed
- 类型:
int64_t
- 描述:上传速度。
# autoRemoveWhenCompletion
- 类型:
BOOL
- 描述:上传完成后是否自动删除上传记录,默认为NO。
# tasks
- 类型:
NSMutableArray
- 描述:所有上传任务。
# progress
- 类型:
NSProgress
- 描述:上传进度。
# 方法
# - upload:
- 描述:单任务上传。
- 参数:
ESUploadInfo
- 用法:
ESUploadInfo *uploadInfo = [[ESUploadInfo alloc]initWithFileURL:[NSURL fileURLWithPath:filePath] fileName:fileName fileHash:fileHash];
ESUploadTask *task = [uploadMgr upload:info];
ESUploadInfo
对象的初始化,参考ESUploadInfo.h
# - multiUpload:
- 描述:多任务上传。
- 参数:
ESUploadInfo
数组 - 用法:
NSArray<ESUploadInfo *>infos = @[...];
NSArray<ESUploadTask *> *tasks = [self.uploadMgr multiUpload:infos];
# - start:
- 描述:开始(恢复)上传某个任务。
- 参数:上传文件的hash值。
# - startWithTask:
- 描述:开始(恢复)上传某个任务。
- 参数:
ESUploadTask
# - suspend:handler:
- 描述:暂停上传某个任务。
- 参数:上传文件的hash值。
# - cancel:handler:
- 描述:取消上传某个任务。
- 参数:上传文件的hash值。
# - remove:handler:
- 描述:移除上传某个任务。
- 参数:
fileHash
:上传文件的hash值,completely
:删除沙盒文件
# - totalStart
- 描述:开始(恢复)上传所有任务
# - totalSuspend:
- 描述:暂停上传所有任务
# - totalCancel:
- 描述:取消上传所有任务
# - totalRemove:
- 描述:移除上传所有任务
# 事件
# - progress:handler:
- 描述:上传进度回调
# - success:handler:
- 描述:上传成功回调
# - failure:handler:
- 描述:上传失败回调
# 上传任务
上传任务ESUploadTask
# 字段
# fileHash
- 类型:
NSString
- 描述:文件hash值。
# fileName
- 类型:
NSString
- 描述:文件名。
# fileURL
- 类型:
NSURL
- 描述:文件沙盒路径。
# resp
- 类型:
NSDictionary
- 描述:上传成功后的返回数据。
# status
- 类型:
ESUploadStatus
- 描述:上传状态。
# startDate
- 类型:
NSTimeInterval
- 描述:上传开始时间戳。
# endDate
- 类型:
NSTimeInterval
- 描述:上传结束时间戳。
# speed
- 类型:
NSError
- 描述:上传错误,当
status
为错误时,有值。
# error
- 类型:
NSError
- 描述:上传速度。
# progress
- 类型:
NSProgress
- 描述:上传进度。
# 方法
# - start
- 描述:开始(恢复)上传任务
# - suspend:
- 描述:暂停上传任务
# - cancel:
- 描述:取消上传任务
# - remove:
- 描述:移除上传任务
# 事件
# - progress:handler:
- 描述:上传进度回调
# - success:handler:
- 描述:上传成功回调
# - failure:handler:
- 描述:上传失败回调
# 上传元数据
ESUploadInfo
上传文件信息类。
# 字段
# fileURL
- 类型:
NSURL
- 描述:文件沙盒路径。
# fileHash
- 类型:
NSString
- 描述:文件hash值。
# name
- 类型:
NSString
- 描述:文件名。
# name
- 类型:
NSString
- 描述:业务系统内对应的资源编号,以便与云端资源关联。
# directives
- 类型:
ESUploadDirectivesInfo
, - 描述:资源转转码参数,可选,参考
ESUploadDirectivesInfo
。
# uploadType
- 类型:
NSString
- 描述: (form表单,chunk分片)上传方式,默认是chunk形式。
# fileSize
- 类型:
int64_t
- 描述: 文件总大小。