全部产品
云市场

高级播放器接口说明

更新时间:2019-04-16 20:56:20

AliyunVodPlayer

  • 类名:AliyunVodPlayer

  • 功能:高级播放器的管理类,用于创建播放器实例。

  • 成员:

成员 功能
prepareWithVid: accessKeyId: accessKeySecret: securityToken: 临时AccessKeyId、AccessKeySecret和SecurityToken:开启RAM授权,并通过STS授权系统提供的OpenAPI或SDK获取的AccessKeyId、AccessKeySecret和SecurityToken,用于播放和下载请求(V3.2.0版起推荐使用STS的播放方式)。
prepareWithVid:playAuth: 初始化设置vid(视频id)和playauth(播放凭证-通过用户服务端下发)
prepareWithUrl 根据视频url获取视频信息,准备播放
playerView 获取视频显示view
displayMode 获取/设置当前显示模式
autoPlay 获取/设置是否自动播放
quality 获取/设置视频清晰度
muteMode 设置是否静音
isPlaying 获取播放器是否播放
timeout 当播放网络流时,设置网络超时时间,默认15000毫秒
playerState 获取播放器当前状态
start 开始播放
resume 继续播放
pause 暂停播放
stop 停止播放
replay 重新播放
duration 视频总时长
seekToTime 拖动到的时间点
currentTime 视频播放当前时间
loadedTime 视频已经加载的时间
setAliyunVodPlayerDelegate 设置播放状态回调代理
getAliyunMediaInfo 获取媒体信息, 当AliyunVodPlayerEventPrepareDone时,才能获取到该参数对象
setPlayingCache 设置边播边缓存功能
videoWidth 获取视频宽度,只读属性。
videoHeight 获取视频高度,只读属性。
pringtLog 日志开关。
brightness 亮度,调用brightness系统属性,brightness(0~1.0)。
volume 声音调节,调用系统MPVolumeView类实现,并非视频声音;volume(0~1.0)。
playSpeed 设置倍数播放值,可设置为0.5~2
getSDKVersion 获取SDK版本号
circlePlay 循环播放控制
snapshot 截取当前正在播放图像
setRenderRotate 渲染视图角度
setRenderMirrorMode 渲染镜像
liveTime 直播时移,直播时间
currentPlayTime 直播时移,播放时间
timeShiftModel 直播时移,更新的时移数据
prepareWithLiveTimeUrl:liveTimeUrl 直播时移准备播放
setLiveTimeShiftUrl:liveTimeShiftUrl 直播时移,直播时移地址
seekToLiveTime:startTime 直播时移,seek到startTime播放时间
referer 防盗链参数

下面详细介绍一下各成员函数的具体使用:

prepareWithVid: accessKeyId: accessKeySecret: securityToken:

  • -(void)prepareWithVid:(NSString )vid accessKeyId:(NSString)accessKeyId accessKeySecret:(NSString)accessKeySecret securityToken:(NSString )securityToken;
    1. 功能:使用vid+playAuth方式播放。
    2. 参数:临时AccessKeyIdAccessKeySecretSecurityToken:开启RAM授权,并通过STS授权系统提供的OpenAPISDK获取的AccessKeyIdAccessKeySecretSecurityToken,用于播放和下载请求(V3.2.0版起推荐使用STS的播放方式)。
    3. 详见:[STS SDK参考](https://help.aliyun.com/document_detail/28788.html?spm=5176.doc28787.6.706.2G5SLS "STS SDK参考")

prepareWithVid:playAuth

  • -(void)prepareWithVid:(NSString )vid playAuth:(NSString )playAuth;
    1. 功能:使用vid+playAuth方式播放。
    2. 参数:vid :视频id
    3. playAuth:播放凭证(阿里云提供了openApiSDK获取,需服务端开发并下发)
    4. 备注:必须要设置,否则无法进行播放,具体获取方式请参考文档.

prepareWithVid:accid:accSecret:stsToken:authInfo:region:playDomain:mtsHlsUriToken

  • -(void)prepareWithVid:(NSString)vid accId:(NSString )accId accSecret:(NSString)accSecret stsToken:(NSString)stsToken authInfo:(NSString)authInfo region:(NSString)region playDomain:(NSString)playDomain mtsHlsUriToken:(NSString)mtsHlsUriToken;

    1. 功能:视频转码服务用户使用播放方式
    2. *参数:部分参数参考:https://help.aliyun.com/document_detail/53522.html?spm=5176.doc53534.2.5.mhSfOh
    3. HLS标准加密:https://help.aliyun.com/document_detail/59885.html?spm=5176.product29194.6.607.2bynDX

prepareWithURL:

  • -(void)prepareWithURL:(NSURL *)url;
    1. 功能:播放器初始化视频,主要目的是分析视频内容,读取视频头信息,解析视频流中的视频和音频信息,并根据视频和音频信息去寻找解码器,创建播放线程等
    2. 备注:调用该函数完成后立即返回,需要等待准备完成通知,收到该通知后代表视频初始化完成,视频准备完成后可以获取到视频的相关信息。使用本地地址播放,注意用户需要传 NSURL 类型数据,不是NSSting 类型数据。

playerState

  • -(AliyunVodPlayerState)playerState;

    1. 功能:获取播放器当前播放状态
    2. 当前播放状态有:
    3. AliyunVodPlayerStateIdle = 0, //空转,闲时,静态
    4. AliyunVodPlayerStateError, //错误
    5. AliyunVodPlayerStatePrepared, //已准备好
    6. AliyunVodPlayerStatePlay, //播放
    7. AliyunVodPlayerStatePause, //暂停
    8. AliyunVodPlayerStateStop, //停止
    9. AliyunVodPlayerStateFinish, //播放完成
    10. AliyunVodPlayerStateLoading //加载中

start

  • -(void)start;

    1. 功能:开始播放视频
    2. 备注:在prepareWithVid之后可以调用start进行播放,设置视频大小改变监听事件。

resume

  • -(void)resume;

    1. 功能:恢复播放视频
    2. 备注:在pause暂停视频之后可以调用resume进行播放,设置视频切换清晰度的监听事件。

pause

  • -(void)pause;

    1. 功能:暂停播放视频
    2. 备注:在start播放视频之后可以调用pause进行暂停,设置视频播放结束的监听事件。

stop

  • -(void)stop;

    1. 功能:停止播放视频

reset

  • -(void)reset;

    1. 功能:重置播放器,其目的是将播放器所有状态恢复到最初位置,当播放器内部出现错误或其它问题时,调用此函数来进行恢复。
    2. 备注:该函数和stop函数的区别是,reset也能够实现stop的功能,但是reset会去销毁播放器内部的各种变量,然后重新进行变量初始化,view变量等会被设置成空。

replay

  • -(void)replay;

    1. 功能:重播,重新播放上一次url地址视频。

releasePlayer

  • -(void)releasePlayer;

    1. 功能:销毁播放器

seekToTime

  • -(void)seekToTime:(NSTimeInterval)time;

    1. 功能:跳转到指定位置进行播放,单位为秒
    2. 备注:在播放器状态AliyunVodPlayerEventFirstFrame之后才能调用此函数。

getAliyunMediaInfo

  • -(AliyunVodPlayerVideo *)getAliyunMediaInfo;

    1. 功能:获取媒体信息, AliyunVodPlayerEventPrepareDone时,才能获取到该参数对象

setPlayingCache:saveDir:maxSize:maxDuration:

  • -(void)setPlayingCache:(BOOL)bEnabled saveDir:(NSString*)saveDir maxSize:(int64_t)maxSize maxDuration:(int)maxDuration;

    1. 功能:设置边播边缓存功能
    2. 参数:bEnabled:是否开启缓存功能
    3. saveDir:缓存存储的路径
    4. maxSize:缓存路径最大空间 单位:MB
    5. maxDuration:缓存最大视频最大长度 单位

setRenderRotate

  • -(void) setRenderRotate:(RenderRotate)rotate;
    1. 功能:设置渲染视图角度

setRenderMirrorMode

  • -(void) setRenderMirrorMode:(RenderMirrorMode)mirrorMode;
    1. 功能:设置渲染镜像

playerView

  • @property (nonatomic, assign, readonly) UIView *playerView;
    1. 功能:获取视频显示的窗口
    2. 备注:此窗口为内部创建的窗口,可以用来添加到用户界面上,进行视频播放显示的参数设置。

autoPlay

  • @property (nonatomic, getter=isAutoPlay) BOOL autoPlay;

    1. 功能:设置/获取是否自动播放
    2. 备注:如果设置成自动播放,则prepareWithVid之后不需要调用start进行播放设置surface

displayMode

  • @property (nonatomic) AliyunVodPlayerDisplayMode displayMode;`

    1. 功能:获取/设置显示模式
    2. 显示模式:
    3. AliyunVodPlayerDisplayModeFit, // 保持原始比例
    4. AliyunVodPlayerDisplayModeFitWithCropping // 全屏占满屏幕设置surfaceHolder

muteMode

  • @property (nonatomic, getter=isMuteMode) BOOL muteMode;

    1. 功能:设置是否静音,YES为静音

isPlaying

  • @property (nonatomic, readonly,assign) BOOL isPlaying;

    1. 功能:播放器初始化后,获取播放器是否播放。

timeout

  • @property(nonatomic, assign) int timeout;;

    1. 功能:设置网络超时时间,单位毫秒
    2. 备注:当播放网络流时,设置网络超时时间,默认15000毫秒

duration

  • @property (nonatomic, readonly,assign)NSTimeInterval duration;

    1. 功能:视频总长度,单位为秒
    2. 备注:在prepareWithVid之后才能够获取时长。

currentTime

  • @property (nonatomic, readonly,assign)NSTimeInterval currentTime;

    1. 功能:当前视频播放位置,单位为秒
    2. 备注:在开始播放之后才能够获取当前播放位置。

loadedTime

  • @property (nonatomic, readonly,assign)NSTimeInterval loadedTime;

    1. 功能:获取已经加载的视频长度(对于网络视频来说,获取已经下载的视频时长)
    2. 备注:在开始播放之后才能够获取此位置。

videoWidth

  • @property (nonatomic, readonly,assign)int videoWidth;`

    1. 功能:获取视频高度,只读属性。
    2. 备注:当调用了prepareToPlay后,并不能立即获得playVideoWidth的值,只有当播放器发送了prepared通知后,videoWidth的值才有效,否则为默认值0

videoHeight

  • @property (nonatomic, readonly,assign)int videoHeight;`

    1. 功能:获取视频高度,只读属性。
    2. 备注:当调用了prepareToPlay后,并不能立即获得playVideoHeight的值,只有当播放器发送了prepared通知后,videoHeight的值才有效,否则为默认值0

quality

  • @property (nonatomic) AliyunVodPlayerVideoQuality quality;
    1. 功能:设置/获取清晰度,用来切换视频清晰度
    2. 播放器的清晰度包括:
    3. AliyunVodPlayerVideoFD, // 流畅
    4. AliyunVodPlayerVideoLD, // 标清
    5. AliyunVodPlayerVideoSD, // 高清
    6. AliyunVodPlayerVideoHD, // 超清
    7. AliyunVodPlayerVideo2K, // 2K
    8. AliyunVodPlayerVideo4K, // 4K
    9. AliyunVodPlayerVideoOD, // 原始
    10. 备注:在播放之后才能调用设置视频准备结束的监听事件。

videoDefinition

  • @property (nonatomic, assign) NSString* videoDefinition;
    1. 功能:设置/获取清晰度,用来切换视频清晰度
    2. 备注:在播放之后才能调用

playSpeed

  • @property(nonatomic, readwrite) float playSpeed;
    1. 功能:设置倍数播放值
    2. >备注:范围0.52区间值.

pringtLog

  • @property (nonatomic, getter=isPrintLog,assign) BOOL pringtLog;`

    1. 功能: 功能:日志开关, default : NO

brightness

  • @property (nonatomic, readwrite) float brightness;`

    1. 功能:亮度,调用brightness系统属性,brightness(0~1.0)

    volume

  • @property (nonatomic, readwrite) float volume;

    1. 功能:声音调节,调用系统MPVolumeView类实现,并非视频声音;volume(0~1.0)

circlePlay

  • @property(nonatomic, readwrite) BOOL circlePlay;
    1. 功能:循环播放控制

getAudioData

  • -(void) getAudioData:(void (^)(NSData *data))block;
    1. 功能:获取音频数据
    2. 参数:block:音频数据回调

snapshot

  • -(UIImage*) snapshot;
    1. 功能:截取当前正在播放图像

dropBufferDuration

  • @property(nonatomic, readwrite) int dropBufferDuration;
    1. 功能:当直播时,缓冲区数据大于dropBufferDuration时开始丢数据,单位毫秒,默认8000毫秒
    2. 备注:必须大于一个GOP的长度。

直播时移

liveTime

  • @property (nonatomic, assign) NSTimeInterval liveTime;
    1. 功能:直播时移,直播时间。

currentPlayTime

  • @property (nonatomic, assign) NSTimeInterval currentPlayTime;
    1. 功能:直播时移,播放时间。

timeShiftModel

  • @property (nonatomic, strong) ALPlayerVideoTimeShiftModel *timeShiftModel;
    1. 功能:直播时移,更新用户的时移数据。

prepareWithLiveTimeUrl

  • -(void)prepareWithLiveTimeUrl:(NSURL *)liveTimeUrl;
    1. 功能:直播时移,准备播放时移地址。

setLiveTimeShiftUrl

  • -(void)setLiveTimeShiftUrl:(NSString*)liveTimeShiftUrl;
    1. 功能:直播时移,设置时移地址。

seekToLiveTime

  • -(void)seekToLiveTime:(NSTimeInterval)startTime;
    1. 功能:直播时移,seekstartTime播放点。

referer

  • @property (nonatomic, copy) NSString *referer;`
    1. 功能:设置referer
    2. >控制台设置防盗链流程:<br>
    3. 1.控制台-防盗链-开启防盗链。<br>
    4. 2.添加黑白名单(黑名单:如果设置referer是被添加的域名,则不能访问,白名单:如果设置的referer被添加到白名单的域名才可以访问)。<br>
    5. 3.默认不选中允许空referer,如果允许空refer,则客户端不设置referer是可以访问的。如果设置了,但是错误的,则不能访问。

getSDKVersion

  • -(NSString*) getSDKVersion;
    1. 功能:获取此播放器版本号 (例如:vision:3.0.0)

delegate

  • @property (nonatomic ,weak) id delegate;
    1. 功能:AliyunVodPlayerManagerDelegate 播放器代理

其中,AliyunVodPlayerEvent为枚举类型,各枚举值含义以及对应返回的params为:

枚举变量 含义
AliyunVodPlayerEventPrepareDone 播放器准备完毕
AliyunVodPlayerEventPlay 播放器开始播放
AliyunVodPlayerEventFirstFrame 播放第一帧图像
AliyunVodPlayerEventPause 播放器暂停播放
AliyunVodPlayerEventFinish 播放器播放完成
AliyunVodPlayerEventStop 播放器停止播放
AliyunVodPlayerEventBeginLoading 播放器开始加载
AliyunVodPlayerEventEndLoading 播放器结束加载
AliyunVodPlayerEventSeekDone 播放器seekto结束

当播放器准备完成后,代理会收到AliyunVodPlayerEventPrepareDone事件,此时可以获取播放器播放数据,具体内容请查看demo。

@required

  • -(void)vodPlayer:(AliyunVodPlayer *)vodPlayer onEventCallback:(AliyunVodPlayerEvent)event ;

    1. 功能:播放事件协议方法,主要内容 AliyunVodPlayerEventPrepareDone状态下,此时获取到播放视频数据(时长、当前播放数据、视频宽高等)
    2. 参数:event 视频事件
  • -(void)vodPlayer:(AliyunVodPlayer )vodPlayer playBackErrorModel:(AliyunPlayerVideoErrorModel )errorModel;

    1. 功能:播放器播放时发生错误时,回调信息
    2. 参数:errorModel 播放器报错时提供的错误信息对象

@optional

  • -(void)vodPlayer:(AliyunVodPlayer*)vodPlayer willSwitchToQuality:(AliyunVodPlayerVideoQuality)quality;

    1. 功能:播放器播放即将切换清晰度时
    2. 参数:quality vid+playauth播放方式、vid+sts播放方式时的清晰度
    3. videoDefinition 媒体转码播放方式的清晰度
  • -(void)vodPlayer:(AliyunVodPlayer *)vodPlayer didSwitchToQuality:(AliyunVodPlayerVideoQuality)quality;

    1. 功能:播放器播放切换清晰度完成
    2. 参数:quality vid+playauth播放方式、vid+sts播放方式时的清晰度
    3. videoDefinition 媒体转码播放方式的清晰度
  • -(void)vodPlayer:(AliyunVodPlayer*)vodPlayer failSwitchToQuality:(AliyunVodPlayerVideoQuality)quality;

    1. 功能:播放器播放切换清晰度失败
    2. 参数:quality vid+playauth播放方式、vid+sts播放方式时的清晰度
    3. videoDefinition 媒体转码播放方式的清晰度
  • (void)onCircleStartWithVodPlayer:(AliyunVodPlayer*)vodPlayer;`

    1. 功能:1.播放器设置了循环播放,此代理方法才会有效。
    2. 2.播放器播放完成后,开始循环播放后,此协议被调用
  • -(void)onTimeExpiredErrorWithVodPlayer:(AliyunVodPlayer *)vodPlayer;

    1. 功能:播放器请求时,通知用户传入的参数鉴权过期。
  • -(void)vodPlayerPlaybackAddressExpiredWithVideoId:(NSString )videoId quality:(AliyunVodPlayerVideoQuality)quality videoDefinition:(NSString)videoDefinition;

    1. 功能:播放过程中,鉴权即将过期时提供的回调消息(过期前一分钟回调)
    2. 参数:videoid:过期时播放的videoId
    3. 参数:quality:过期时播放的清晰度,playauth播放方式和STS播放方式有效。
    4. 参数:videoDefinition:过期时播放的清晰度,MTS播放方式时有效。
  • ALPlayerVideoErrorModel:错误信息对象。
    1. errorMsg :错误信息
    2. errorCode 错误码
    3. errorVid 错误Vid
    4. errorUrl 报错时播放url
    5. errorRequestId 确定报错时的具体定位标识
枚举值 错误码 错误信息
ALIVC_ERR_INVALID_PARAM 4001 参数非法
ALIVC_ERR_AUTH_EXPIRED 4002 鉴权过期,请重新获取新的鉴权信息
ALIVC_ERR_INVALID_INPUTFILE 4003 无效的输入文件,请检查视频源和路径
ALIVC_ERR_NO_INPUTFILE 4004 没有设置视频源或视频地址不存在
ALIVC_ERR_READ_DATA_FAILED 4005 读取视频源失败
ALIVC_ERR_LOADING_TIMEOUT 4008 视频加载超时,请检查网络状况
ALIVC_ERR_REQUEST_DATA_ERROR 4009 请求数据错误
ALIVC_ERR_VIDEO_FORMAT_UNSUPORTED 4011 视频格式不支持
ALIVC_ERR_PLAYAUTH_PARSE_FAILED 4012 playAuth解析失败
ALIVC_ERR_DECODE_FAILED 4013 视频解码失败
ALIVC_ERR_NO_SUPPORT_CODEC 4019 视频编码格式不支持
ALIVC_ERR_UNKNOWN 4400 未知错误
ALIVC_ERR_REQUEST_ERROR 4500 服务端请求错误
ALIVC_ERR_DATA_ERROR 4501 服务器返回数据错误
ALIVC_ERR_QEQUEST_SAAS_SERVER_ERROR 4502 请求saas服务器错误
ALIVC_ERR_QEQUEST_MTS_SERVER_ERROR 4503 请求mts服务器错误
ALIVC_ERR_SERVER_INVALID_PARAM 4504 服务器返回参数无效,请检查XX参数
ALIVC_ERR_ILLEGALSTATUS 4521 非法的播放器状态,当前状态是xx
ALIVC_ERR_NO_VIEW 4022 没有设置显示窗口,请先设置播放视图
ALIVC_ERR_NO_MEMORY 4023 内存不足
ALIVC_ERR_FUNCTION_DENIED 4024 系统权限被拒绝或没有经过授权
ALIVC_ERR_DOWNLOAD_NO_NETWORK 4101 视频下载时连接不到服务器
ALIVC_ERR_DOWNLOAD_NETWORK_TIMEOUT 4102 视频下载时网络超时
ALIVC_ERR_DOWNLOAD_QEQUEST_SAAS_SERVER_ERROR 4103 请求点播saas服务器错误
ALIVC_ERR_DOWNLOAD_QEQUEST_MTS_SERVER_ERROR 4104 请求mts服务器错误
ALIVC_ERR_DOWNLOAD_SERVER_INVALID_PARAM 4105 服务器返回参数无效,请检查XX参数
ALIVC_ERR_DOWNLOAD_INVALID_INPUTFILE 4106 视频下载流无效或地址过期
ALIVC_ERR_DOWNLOAD_NO_ENCRYPT_FILE 4107 未找到加密文件,请从控制台下载加密文件并集成
ALIVC_ERR_DONWNLOAD_GET_KEY 4108 获取秘钥失败,请检查秘钥文件
ALIVC_ERR_DOWNLOAD_INVALID_URL 4109 下载地址无效
ALIVC_ERR_DONWLOAD_NO_SPACE 4110 磁盘空间不够
ALIVC_ERR_DOWNLOAD_INVALID_SAVE_PATH 4111 视频文件保存路径不存在,请重新设置
ALIVC_ERR_DOWNLOAD_NO_PERMISSION 4112 当前视频不可下载
ALIVC_ERR_DOWNLOAD_MODE_CHANGED 4113 下载模式改变无法继续下载
ALIVC_ERR_DOWNLOAD_ALREADY_ADDED 4114 当前视频已经添加到下载项,请避免重复添加
ALIVC_ERR_DOWNLOAD_NO_MATCH 4115 未找到合适的下载项,请先添加

备注:具体可以参考demo中的代码。

AliyunVodDownLoadManager

  • 类名:AliyunVodDownLoadManager

  • 功能:下载管理类,实现下载管理功能。

  • 成员:

成员 功能
shareManager 获取下载类单例对象
setDownLoadPath 设置下载视频存放路径
setDownloadPassword 设置下载视频的加密密钥
setEncrptyFile 设置下载的加密图
changeEncryptFile 改变加密图设置
setMaxDownloadOperationCount 设置同时下载的数量
downLoadInfoListenerDelegate 设置下载消息的代理监听器
prepareDownloadMedia 准备下载,用于下载之前获取下载视频信息
startDownloadMedia 开始下载单个视频
startDownloadMedias 开始下载多个视频
stopDownloadMedia 停止下载单个视频
stopDownloadMedias 停止下载多个视频
stopAllDownloadMedia 停止所有视频下载
downloadingdMedias 获取正在下载的视频,包括正在下载和等待下载的视频
currentDownloadingdMedias 获取正在下载的视频,不包括等待下载的视频
allMedias 获取所有下载的视频列表,包括已下载、已停止和下载中的视频
clearDownLoadingMedia 清除指定下载中的视频
clearDownLoadingMedias 清除所有下载中的视频
getSDKVersion 获取下载功能的版本号

下面详细介绍一下各成员函数的具体使用:

shareManager

  • +(AliyunVodDownLoadManager*)shareManager;
    1. 功能:获取下载单例实例。

setDownLoadPath

  • -(void)setDownLoadPath:(NSString *)path;
    1. 功能:设置加密视频的下载存放路径。
    2. 参数:path:下载路径
    3. 备注:上次异常结束未完成的视频下载信息,会在下次设置下载路径后启动onUnFinished回调。

setMaxDownloadOperationCount

  • -(void)setMaxDownloadOperationCount:(int)count;
    1. 功能:设置同时下载的数量,最大4
    2. 参数:count:同时下载的个数

setEncrptyFile

  • -(void)setEncrptyFile:(NSString *)encrptyFile;
    1. 功能:设置加密文件
    2. 参数:encrptyFile为加密文件路径
    3. 备注:设置安全下载的加密文件(dat),加密文件的作用是将下载视频的密钥和用户的app信息进行绑定。安全下载是指将视频文件通过私钥进行二次加密,下载后在SDK内部完成视频解密,保障离线视频仅能通过唯一应用进行安全播放,具体请参考:[使用说明]( https://help.aliyun.com/document_detail/52848.html?spm=5176.doc55398.6.645.boS47A "使用说明")

changeEncryptFile

  • -(int)changeEncryptFile:(NSString)oldEncrptyFile newEncryptFile:(NSString)newEncryptFile mp4Files:(NSArray*)mp4Files;
    1. 功能:当需要更换密钥的时候,需要将用老的密钥下载的文件进行转换,转换成新的密钥加密产生的文件。
    2. 参数:oldEncrptyFile:老的加密文件
    3. newEncryptFile:新的加密文件
    4. mp4Files:老的加密文件加密下载的mp4文件列表
    5. 备注:当调用changeEncryptFile函数的时候,将会有相关的回调:

downLoadInfoListenerDelegate

-(void)downLoadInfoListenerDelegate:(id<AliyunVodDownLoadDelegate>)delegate;

功能:设置下载视频中的消息代理。

参数:

  • delegate:AliyunVodDownLoadDelegate代理协议
    1. @protocol AliyunVodDownLoadDelegate <NSObject>
  • -(void) onUnFinished:(NSArray*)mediaInfos;

    1. 功能:未完成回调,异常中断导致下载未完成,下次启动后会接收到此回调。
    2. 回调数据:AliyunDownloadMediaInfo数组。
  • -(NSString) onGetPlayAuth:(NSString)vid format:(NSString*)format quality:(AliyunVodPlayerVideoQuality)quality;

    1. 功能:开始下载后收到回调,更新最新的playAuth。主要场景是开始多个下载时,等待下载的任务自动开始下载后,playAuth有可能已经过期了,需通过此回调更新
    2. 参数:返回当前数据
    3. 返回:使用代理方法,设置playauth来更新数据。
    4. 备注:如通过请求数据来获取playAuth,请使用同步方法。此代理方法在其他线程里,不会存在卡线程问题。
  • -(AliyunStsData)onGetAliyunStsData:(NSString )videoID format:(NSString*)format quality:(AliyunVodPlayerVideoQuality)quality;

    1. 功能:开始下载后收到回调,更新最新的stsData。主要场景是开始多个下载时,等待下载的任务自动开始下载后,stsData有可能已经过期了,需通过此回调更新
    2. 参数:返回当前数据
    3. 返回:使用代理方法,设置AliyunStsData来更新数据。
    4. 备注:如通过请求数据来获取stsData,请使用同步方法。此代理方法在其他线程里,不会存在卡线程问题。
  • -(AliyunMtsData)onGetAliyunMtsData:(NSString )videoID format:(NSString)format quality:(NSString )quality;

    1. 功能:开始下载后收到回调,更新最新的MtsData。主要场景是开始多个下载时,等待下载的任务自动开始下载后,MtsData有可能已经过期了,需通过此回调更新
    2. 参数:返回当前数据
    3. 返回:使用代理方法,设置AliyunMtsData来更新数据。
    4. 备注:如通过请求数据来获取mtsData,请使用同步方法。此代理方法在其他线程里,不会存在卡线程问题。
  • -(void) onPrepare:(NSArray*)mediaInfos;

    1. 功能:准备下载回调。
    2. 回调数据:AliyunDownloadMediaInfo数组
  • -(void) onStart:(AliyunDownloadMediaInfo*)mediaInfo;

    1. 功能:下载开始回调。
    2. 回调数据:AliyunDownloadMediaInfo
  • -(void) onProgress:(AliyunDownloadMediaInfo*)mediaInfo;

    1. 功能:下载进度回调。可通过mediaInfo.downloadProgress获取进度。
    2. 回调数据:AliyunDownloadMediaInfo
  • -(void) onStop:(AliyunDownloadMediaInfo*)mediaInfo;

    1. 功能:调用stop结束下载时回调。
    2. 回调数据:AliyunDownloadMediaInfo
  • -(void) onCompletion:(AliyunDownloadMediaInfo*)mediaInfo;

    1. 功能:下载完成回调。
    2. 回调数据:AliyunDownloadMediaInfo
  • -(void) onChangeEncryptFileProgress::(int)progress;

    1. 功能:改变加密文件(调用changeEncryptFile时回调)。
    2. 回调数据:重新加密之前视频文件进度
  • -(void) onChangeEncryptFileComplete;

    1. 功能:改变加密文件后老的加密视频重新加密完成时回调。加密完成后注意删除老的加密文件。
  • -(void)onError:(AliyunDownloadMediaInfo)mediaInfo code:(int)code msg:(NSString )msg;
    1. 视频下载发生错误时的回调,code错误码,msg错误描述字符串
    2. AliyunVodDownLoadError:错误类型有:
    3. AliyunVodDownLoadErrorNotConnectServer // 服务器不可连接
    4. AliyunVodDownLoadErrorRequestSaasServer // 请求saas服务器错误
    5. AliyunVodDownLoadErrorRequestMTSServer // 请求MTS服务器错误
    6. AliyunVodDownLoadErrorServerInvalidParam // 服务器返回无效参数
    7. AliyunVodDownLoadErrorInputParamInvalid // 调用函数输入参数错误
    8. AliyunVodDownLoadErrorNetTimeOut // 网络超时
    9. AliyunVodDownLoadErrorUrlInVaild // 流无效/地址过期
    10. AliyunVodDownLoadErrorInvalidSecretImage // 密钥图片不对
    11. AliyunVodDownLoadErrorDiskSpace // 磁盘空间不够
    12. AliyunVodDownLoadErrorDownLoadUrlNotHave // 下载路径不存在
    13. AliyunVodDownLoadErrorNoPermission // 无权限下载
    14. AliyunVodDownLoadErrorException // try catch捕获错误
    15. AliyunVodDownLoadErrorDownloadModeChange // 下载模式改变,无法继续下载

prepareDownloadMedia

  • -(void)prepareDownloadMedia:(AliyunDataSource*)dataSource;
    1. 功能:获取视频信息,一般下载之前调用,获取视频长度、大小、格式和清晰度。
    2. 参数:dataSourceAliyunDataSource类,该类包括以下:
    3. vid:视频的vid信息
    4. quality: 要下载视频的清晰度,AliyunVodPlayerVideoQuality清晰度有:
    5. AliyunVodPlayerVideoFD, // 流畅
    6. AliyunVodPlayerVideoLD, // 标清
    7. AliyunVodPlayerVideoSD, // 高清
    8. AliyunVodPlayerVideoHD, // 超清
    9. AliyunVodPlayerVideo2K, // 2K
    10. AliyunVodPlayerVideo4K, // 4K
    11. AliyunVodPlayerVideoOD, // 原始
    12. playAuth:下载视频的playAuth
    13. mediaInfosmeAliyunDownloadMediaInfo类数组,该类包括以下:
    14. vid:视频的vid信息
    15. title:视频的标题信息
    16. coverURL:视频的封面图片URL
    17. quality: 要下载视频的清晰度,AliyunVodPlayerVideoQuality枚举
    18. downloadProgress:下载的进度信息
    19. duration:下载视频的视频长度
    20. size:下载视频的的文件大小
    21. format:下载视频的格式信息
    22. 备注:调用此函数,如果成功将会有onPrepare回调,-(void) onPrepare:(NSArray<AliyunDownloadMediaInfo*>*)mediaInfos;将会返回AliyunDownloadMediaInfo的数组。

startDownloadMedia

  • -(void) startDownloadMedia:(AliyunDataSource*)dataSource;
    1. 功能:开始下载视频资源列表。调用此方法后,会依次下载列表中的视频。
    2. 参数:dataSourceAliyunDataSource
    3. 备注:调用startDownloadMedia,如果成功将会有-(void) onStart:(AliyunDownloadMediaInfo*)mediaInfo回调信息

startDownloadMedias

  • -(void) startDownloadMedias:(NSArray*)dataSources;
    1. 功能:开始下载视频资源列表。调用此方法后,会依次下载列表中的视频。
    2. 参数: dataSourcesAliyunDataSource类数组
    3. 备注:调用startDownloadMedias,每成功开始下载一个,都会回调一次onStart代理

stopDownloadMedia

  • -(void) stopDownloadMedia:(AliyunDownloadMediaInfo*)downloadInfo;
    1. 功能:结束下载视频资源。
    2. 参数:downloadInfoAliyunDownloadMediaInfo
    3. 备注:调用stopDownloadMedia,如果成功将会产生-(void) onStop:(AliyunDownloadMediaInfo*)mediaInfo回调

stopDownloadMedias

  • -(void) stopDownloadMedias:(NSArray*)downloadInfos;
    1. 功能:停止多个视频的下载。
    2. 参数:downloadInfosAliyunDownloadMediaInfo类数组
    3. 备注:调用stopDownloadMedias,每成功一个都会产生onStop回调

stopAllDownloadMedia

  • -(void) stopAllDownloadMedia;
    1. 功能:停止所有视频的下载。
    2. 备注:stopAllDownloadMedia,每成功一个都会产生onStop回调

downloadingdMedias

  • -(NSArray*) downloadingdMedias;
    1. 功能:获取正在下载的视频列表,包括正在下载的和等待下载的。
    2. 备注:返回AliyunDownloadMediaInfo数组

currentDownloadingdMedias

  • -(NSArray*) currentDownloadingdMedias;
    1. 功能:获取正在下载的视频列表,不包括等待下载的。
    2. 备注:返回AliyunDownloadMediaInfo数组

allMedias

  • -(NSArray*) allMedias;
    1. 功能:获取所有下载的视频列表,包括正在下载的,等待的,停止的,结束的等。
    2. 备注:返回AliyunDownloadMediaInfo数组

clearDownLoadingMedia

  • -(void) clearDownLoadingMedia:(AliyunDownloadMediaInfo*)downloadInfo;
    1. 功能:清除下载的指定的视频,包括删除下载的文件。
    2. 参数:downloadInfoAliyunDownloadMediaInfo

clearDownLoadingMedias

  • -(void) clearDownLoadingMedias;
    1. 功能:清除所有下载的视频,包括删除下载的文件。

getSDKVersion

  • -(NSString*) getSDKVersion;
    1. 功能:获取下载功能的版本号