BJVDownloadManager.h 5.47 KB
Newer Older
huangjie's avatar
huangjie committed
1 2 3 4 5 6 7 8
//
//  BJVDownloadManager.h
//  BJVideoPlayerCore
//
//  Created by MingLQ on 2018-04-03.
//  Copyright © 2018 BaijiaYun. All rights reserved.
//

huangjie's avatar
module  
huangjie committed
9
#import <BJLiveBase/BJLiveBase.h>
huangjie's avatar
huangjie committed
10 11 12 13 14

#import "BJVPlayInfo.h"

NS_ASSUME_NONNULL_BEGIN

戴曦嘉's avatar
戴曦嘉 committed
15 16 17 18 19
@compatibility_alias BJVDownloadFile BJLDownloadFile;
@compatibility_alias BJVDownloadManager BJLDownloadManager;

#pragma mark -

huangjie's avatar
huangjie committed
20 21
@interface BJVDownloadItem : BJLDownloadItem

戴曦嘉's avatar
戴曦嘉 committed
22
/** 点播视频 ID*/
huangjie's avatar
huangjie committed
23
@property (nonatomic, readonly, nullable) NSString *videoID;
戴曦嘉's avatar
戴曦嘉 committed
24
/** 回放课程、课节 ID*/
huangjie's avatar
huangjie committed
25
@property (nonatomic, readonly, nullable) NSString *classID, *sessionID;
戴曦嘉's avatar
戴曦嘉 committed
26
/** 是否为回放 item*/
huangjie's avatar
huangjie committed
27
@property (nonatomic, readonly) BOOL isPlayback;
戴曦嘉's avatar
戴曦嘉 committed
28
/** 文件是否加密*/
huangjie's avatar
huangjie committed
29
@property (nonatomic, readonly) BOOL isEncrypted;
辛亚鹏's avatar
2.9.1  
辛亚鹏 committed
30 31
/** 裁剪过的回放视频的version */
@property (nonatomic, readonly) NSInteger clipedVersion;
戴曦嘉's avatar
戴曦嘉 committed
32
/** 视频播放信息*/
huangjie's avatar
huangjie committed
33 34
@property (nonatomic, readonly, nullable) BJVPlayInfo *playInfo;

戴曦嘉's avatar
戴曦嘉 committed
35
/** 视频、信令文件 */
戴曦嘉's avatar
戴曦嘉 committed
36
@property (nonatomic, readonly, nullable) BJVDownloadFile *videoFile, *signalFile;
戴曦嘉's avatar
戴曦嘉 committed
37
/** 封面、水印图片*/
戴曦嘉's avatar
戴曦嘉 committed
38
@property (nonatomic, readonly, nullable) BJVDownloadFile *coverImageFile, *watermarkImageFile;
戴曦嘉's avatar
2.6.0  
戴曦嘉 committed
39 40
/** 字幕 */
@property (nonatomic, readonly, nullable) NSArray<BJVDownloadFile *> *subtitleFiles;
戴曦嘉's avatar
戴曦嘉 committed
41
/** 视频清晰度*/
huangjie's avatar
huangjie committed
42 43
@property (nonatomic, readonly) BJVDefinitionInfo *currentDefinitionInfo;

戴曦嘉's avatar
戴曦嘉 committed
44 45 46 47 48
#pragma mark - readwrite

/** token、集成方鉴权参数*/
@property (nonatomic, nullable) NSString *token, *accessKey;
/** 集成方自定义信息*/
huangjie's avatar
huangjie committed
49 50 51 52 53 54 55 56
@property (nonatomic, nullable) NSDictionary *userInfo;

@end

#pragma mark -

@interface BJVDownloadManager (BJVDownloadItem)

戴曦嘉's avatar
戴曦嘉 committed
57 58 59 60
/**
 校验下载任务对象是否可以添加
 
 #return 是否可添加
辛亚鹏's avatar
2.9.1  
辛亚鹏 committed
61
 #discussion clipedVersion,裁剪过的回放视频的version
戴曦嘉's avatar
戴曦嘉 committed
62 63
 #discussion 已经添加过/已下载完成 的任务,方法返回 NO
 */
huangjie's avatar
huangjie committed
64 65
- (BOOL)validateItemWithVideoID:(NSString *)videoID;
- (BOOL)validateItemWithClassID:(NSString *)classID sessionID:(nullable NSString *)sessionID;
辛亚鹏's avatar
2.9.1  
辛亚鹏 committed
66
- (BOOL)validateItemWithClassID:(NSString *)classID sessionID:(nullable NSString *)sessionID clipedVersion:(NSInteger)clipedVersion;
huangjie's avatar
huangjie committed
67 68 69
- (BOOL)validateItemWithPlayInfo:(BJVPlayInfo *)playInfo;

/**
戴曦嘉's avatar
戴曦嘉 committed
70 71 72 73 74 75 76
 点播
 #param videoID      视频 ID
 #param encrypted    是否加密
 #param preferredDefinitionList 下载清晰度列表,按顺序匹配、没有匹配将导致下载失败,传 nil 使用默认清晰度
 #discussion preferredDefinitionList 列表元素为清晰度的标识字符串,现有标识符:low(标清),high(高清),superHD(超清),720p,1080p,audio(纯音频),可根据实际情况动态扩展
 #param setting      添加成功后用于设置 item 属性的回调
 #return 添加成功返回 BJVDownloadItem 实例,videoID 已存在会返回 nil
huangjie's avatar
huangjie committed
77 78 79 80 81 82 83
 */
- (nullable BJVDownloadItem *)addDownloadItemWithVideoID:(NSString *)videoID
                                               encrypted:(BOOL)encrypted
                                 preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList;
- (nullable BJVDownloadItem *)addDownloadItemWithVideoID:(NSString *)videoID
                                               encrypted:(BOOL)encrypted
                                 preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList
戴曦嘉's avatar
戴曦嘉 committed
84
                                                 setting:(nullable void (^)(BJVDownloadItem *item))setting;
huangjie's avatar
huangjie committed
85 86

/**
戴曦嘉's avatar
戴曦嘉 committed
87 88
 回放
 #param classID      课程 ID
戴曦嘉's avatar
2.8.0  
戴曦嘉 committed
89
 #param sessionID    课节 ID
戴曦嘉's avatar
戴曦嘉 committed
90 91 92
 #param encrypted    是否加密
 #param preferredDefinitionList  下载清晰度列表,列表元素为 NSNumber<BJVDefinitionType> *,按顺序匹配、没有匹配将导致下载失败,传 nil 使用默认清晰度
 #discussion preferredDefinitionList 列表元素为清晰度的标识字符串,现有标识符:low(标清),high(高清),superHD(超清),720p,1080p,audio(纯音频),可根据实际情况动态扩展
辛亚鹏's avatar
2.9.0  
辛亚鹏 committed
93
 #param isClipedPlaybackVideo      是否为裁剪过的回放视频
戴曦嘉's avatar
戴曦嘉 committed
94 95
 #param setting      添加成功后用于设置 item 属性的回调
 #return 添加成功返回 BJVDownloadItem 实例,classID+sessionID 已存在会返回 nil
huangjie's avatar
huangjie committed
96 97 98 99 100
 */
- (nullable BJVDownloadItem *)addDownloadItemWithClassID:(NSString *)classID
                                               sessionID:(nullable NSString *)sessionID
                                               encrypted:(BOOL)encrypted
                                 preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList;
辛亚鹏's avatar
2.9.0  
辛亚鹏 committed
101 102 103 104 105 106 107

- (nullable BJVDownloadItem *)addDownloadItemWithClassID:(NSString *)classID
                                               sessionID:(nullable NSString *)sessionID
                                               encrypted:(BOOL)encrypted
                                 preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList
                                                 setting:(nullable void (^)(BJVDownloadItem *item))setting;

huangjie's avatar
huangjie committed
108 109 110 111
- (nullable BJVDownloadItem *)addDownloadItemWithClassID:(NSString *)classID
                                               sessionID:(nullable NSString *)sessionID
                                               encrypted:(BOOL)encrypted
                                 preferredDefinitionList:(nullable NSArray<NSString *> *)preferredDefinitionList
辛亚鹏's avatar
2.9.1  
辛亚鹏 committed
112
                                           clipedVersion:(NSInteger)clipedVersion
戴曦嘉's avatar
戴曦嘉 committed
113
                                                 setting:(nullable void (^)(BJVDownloadItem *item))setting;
huangjie's avatar
huangjie committed
114 115 116 117

@end

NS_ASSUME_NONNULL_END