PLVDownloadMediaManager
Objective-C
@interface PLVDownloadMediaManager : NSObject
Swift
class PLVDownloadMediaManager : NSObject
视频下载管理单例
-
注意!!!注意!!!注意!!!
旧版本点播SDK ,支持单账号,多账号模式 。多账号模式,支持多个用户视频分开存储。 新版本点播SDK,只支持多账号模式。 旧版本点播SDK,如果是单账号下载模式,当升级到新版本SDK ,必须设置此属性,用于视频迁移。 旧版本视频数据,会迁移到第一次调用 【setAccountID:] 方法时,传递的 accountId ,作为此用户的缓存数据
Declaration
Objective-C
@property (nonatomic, copy) NSString *previousDownloadDir;
Swift
var previousDownloadDir: String! { get set }
-
是否允许使用蜂窝移动网络进行下载,默认 YES
Declaration
Objective-C
@property (nonatomic) BOOL allowsCellularAccess;
Swift
var allowsCellularAccess: Bool { get set }
-
添加任务后是否自动启动,默认 NO
Declaration
Objective-C
@property (nonatomic) BOOL autoStart;
Swift
var autoStart: Bool { get set }
-
允许同时下载的最大任务数,默认为1,最大为3
Declaration
Objective-C
@property (nonatomic) NSUInteger maxRuningCount;
Swift
var maxRuningCount: UInt { get set }
-
TS 文件下载模式 。 默认CreateAllResumeOne初始化时创建所有ts片下载任务,然后逐个启动下载 设置CreateOneResumeOne 针对直播回放视频优化下载
Declaration
Objective-C
@property (nonatomic) int taskCreateMode;
Swift
var taskCreateMode: PLVTaskCreateMode { get set }
-
下载队列是否处于下载状态
Declaration
Objective-C
@property (nonatomic, readonly) BOOL isDownloading;
Swift
var isDownloading: Bool { get }
-
下载目录,可打印查看视频文件保存目录
Declaration
Objective-C
@property (nonatomic, copy, readonly) NSString *downloadDir;
Swift
var downloadDir: String! { get }
-
保存的后台下载会话block
Declaration
Objective-C
@property (nonatomic, copy) void (^)(void) backgroundCompletionHandler;
Swift
var backgroundCompletionHandler: (() -> Void)! { get set }
-
完成所有下载回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(void) completeBlock;
Swift
var completeBlock: (() -> Void)! { get set }
-
单个视频下载完成回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVDownloadInfo *) downloadCompleteBlock;
Swift
var downloadCompleteBlock: ((PLVDownloadInfo?) -> Void)! { get set }
-
下载错误回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVVodMediaVideo *, NSError *) downloadErrorHandler;
Swift
var downloadErrorHandler: ((PLVVodMediaVideo?, Error?) -> Void)! { get set }
-
PLVDownloadMediaManager 共享单例对象
Declaration
Objective-C
+ (instancetype)sharedManager;
Swift
class func shared() -> Self!
Return Value
PLVDownloadMediaManager 共享的静态对象
-
设置具体的账号标识,必须调用此方法,才能开始下载 当切换不同的用户,同样调用此方法进行切换
Declaration
Objective-C
- (void)setAccountID:(NSString *)accountId;
Swift
func setAccountID(_ accountId: String!)
Parameters
accountId
终端用户的唯一标志,建议传递userId
-
处理后台下载完成回调的事件 必须在AppDelegate 中调用 具体参考demo
Declaration
Objective-C
- (void)handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)(void))completionHandler;
Swift
func handleEvents(forBackgroundURLSession identifier: String!) async
-
添加至下载队列
添加下载器,仅当 video 错误时,才会报错,quality 错误时,只会警告,并切换到最近的质量进行下载。
Declaration
Objective-C
- (PLVDownloadInfo *)addVideoTask:(PLVVodMediaVideo *)video quality:(id)quality;
Swift
func addVideoTask(_ video: PLVVodMediaVideo!, quality: PLVVodMediaQuality) -> PLVDownloadInfo!
Parameters
video
PLVVodVideo 视频对象
quality
视频画质
Return Value
下载信息
-
下载音频文件(开通视频转音频服务才有此功能)
Declaration
Objective-C
- (PLVDownloadInfo *)addAudioTask:(PLVVodMediaVideo *)video;
Swift
func addAudioTask(_ video: PLVVodMediaVideo!) -> PLVDownloadInfo!
Parameters
video
PLVVodVideo 视频对象
Return Value
下载信息
-
开始队列下载
Declaration
Objective-C
- (void)startDownload;
Swift
func startDownload()
-
停止队列下载
Declaration
Objective-C
- (void)stopDownload;
Swift
func stopDownload()
-
开始指定vid视频下载,根据priority 参数执行不同的下载策略
Declaration
Objective-C
- (void)startDownloadTask:(PLVDownloadInfo *)downloadInfo highPriority:(BOOL)priority;
Swift
func startDownloadTask(_ downloadInfo: PLVDownloadInfo!, highPriority priority: Bool)
Parameters
downloadInfo
视频下载对象
priority
YES 当达到并发数限制,优先下载此视频;NO,当达到并发数限制,处于Preparing 状态
-
停止下载指定视频/音频
Declaration
Objective-C
- (void)stopDownloadTask:(PLVDownloadInfo *)downloadInfo;
Swift
func stopDownloadTask(_ downloadInfo: PLVDownloadInfo!)
Parameters
downloadInfo
视频下载对象
-
移除音频/视频下载任务,并删除对应文件
Declaration
Objective-C
- (void)removeDownloadTask:(PLVDownloadInfo *)downloadInfo error:(NSError **)error;
Swift
func removeDownloadTask(_ downloadInfo: PLVDownloadInfo!, error: NSErrorPointer)
Parameters
downloadInfo
fileType 为音频,操作音频文件;为视频,操作视频文件
error
错误回调
-
获取未完成下载列表 并且创建下载器,恢复下载任务
Declaration
Objective-C
- (void)getUnfinishedDownloadList: (void (^)(NSArray<PLVDownloadInfo *> *))completion;
Swift
func unfinishedDownloadList() async -> [PLVDownloadInfo]?
Parameters
completion
完成回调,返回视频信息数组 可能异步返回
-
获取未完成下载列表(不创建下载任务)
Declaration
Objective-C
- (NSArray<PLVDownloadInfo *> *)getUnfinishedDownloadList;
Swift
func getUnfinishedDownloadList() -> [PLVDownloadInfo]!
Return Value
同步返回未完成下载列表
-
获取已成功完成下载列表
Declaration
Objective-C
- (NSArray<PLVDownloadInfo *> *)getFinishedDownloadList;
Swift
func getFinishedDownloadList() -> [PLVDownloadInfo]!
Return Value
下载完成的视频数组
-
获取视频下载详细信息
Declaration
Objective-C
- (PLVDownloadInfo *)getDownloadInfo:(NSString *)vid fileType:(id)fileType;
Swift
func getDownloadInfo(_ vid: String!, fileType: PLVDownloadFileType) -> PLVDownloadInfo!
Parameters
vid
视频id
fileType
下载的文件类型
-
删除视频/音频,会删除包含 vid 的所有离线资源(与下载任务无关)。
Declaration
Objective-C
+ (void)removeCachedFile:(NSString *)vid fileType:(id)fileType error:(NSError **)error;
Swift
class func removeCachedFile(_ vid: String!, fileType: PLVDownloadFileType, error: NSErrorPointer)
Parameters
vid
视频id
fileType
fileType 为音频,操作音频文件;为视频,操作视频文件
error
错误回调
-
删除下载目录下所有离线资源(与下载任务无关)。
Declaration
Objective-C
+ (void)removeAllCachedFiles:(NSError **)error;
Swift
class func removeAllCachedFiles(_ error: NSErrorPointer)
Parameters
error
错误回调
-
判断指定视频是否存在本地 指定 vid 视频是否已下载,返回指定 vid 的清晰度,返回 0 则不存在该视频。
Declaration
Objective-C
+ (id)videoExist:(NSString *)vid;
Swift
class func videoExist(_ vid: String!) -> PLVVodMediaQuality
Parameters
vid
vid
Return Value
指定视频的画质
-
下载PPT 文件
Declaration
Objective-C
- (void)downloadPPTWithVideo:(PLVVodMediaVideo *)video completion:(void (^)(PLVDownloadInfo *))completion;
Swift
func downloadPPT(with video: PLVVodMediaVideo!) async -> PLVDownloadInfo?
Parameters
video
PLVVodVideo 视频对象
-
删除本地ppt 数据 (与下载任务无关)
Declaration
Objective-C
+ (void)removePPTWithVid:(NSString *)vid error:(NSError **)error;
Swift
class func removePPT(withVid vid: String!, error: NSErrorPointer)
Parameters
vid
视频id
error
错误回调