# AliPlayer_iOS
# 功能使用
阿里云SDK提供了以下几大功能:
- 单个视频播放功能
- 视频列表播放功能
- 下载视频功能
- 缓存功能
功能具体介绍如下。
<a name="a10bc835"></a>
## 一. 播放功能
播放功能的基本流程如下:
创建播放器->设置事件监听->创建播放源->准备播放器->准备成功后开始播放->播放控制->释放播放器。
<a name="3f171af3"></a>
### 1.创建播放器
可以创建两种播放器:AliPlayer和AliListPlayer。<br />AliListPlayer比AliPlayer多了列表播放的功能,其余功能是一致的。使用方法如下:
```objectivec
self.player = [[AliPlayer alloc] init];
self.listPlayer = [[AliListPlayer alloc] init];
```
如果播放的视频是安全下载后的本地文件(即经过阿里云`加密转码`过后的),那么还需要设置一个加密校验信息(建议在Application中配置一次即可):
```objectivec
NSString *encrptyFilePath = [[NSBundle mainBundle] pathForResource:@"encryptedApp" ofType:@"dat"];
[AliPrivateService initKey:encrptyFilePath];
```
如果没有设置正确的校验文件,播放安全下载后的文件会报错:ERROR_DEMUXER_OPENSTREAM。
<a name="e787e787"></a>
### 2.设置播放器Delegate
播放器提供了Delegate回调,比如:onPlayerEvent,onError等事件。使用方法如下:
```
@interface SimplePlayerViewController ()<AVPDelegate>
@end
- (void)viewDidLoad {
self.player = [[AliPlayer alloc] init];
self.player.playerView = self.avpPlayerView.playerView;
self.player.delegate = self;
//...
}
/**
@brief 错误代理回调
@param player 播放器player指针
@param errorModel 播放器错误描述,参考AliVcPlayerErrorModel
*/
- (void)onError:(AliPlayer*)player errorModel:(AVPErrorModel *)errorModel {
//提示错误,及stop播放
}
/**
@brief 播放器事件回调
@param player 播放器player指针
@param eventType 播放器事件类型,@see AVPEventType
*/
-(void)onPlayerEvent:(AliPlayer*)player eventType:(AVPEventType)eventType {
switch (eventType) {
case AVPEventPrepareDone: {
// 准备完成
}
break;
case AVPEventAutoPlayStart:
// 自动播放开始事件
break;
case AVPEventFirstRenderedStart:
// 首帧显示
break;
case AVPEventCompletion:
// 播放完成
break;
case AVPEventLoadingStart:
// 缓冲开始
break;
case AVPEventLoadingEnd:
// 缓冲完成
break;
case AVPEventSeekEnd:
// 跳转完成
break;
case AVPEventLoopingStart:
// 循环播放开始
break;
default:
break;
}
}
/**
@brief 视频当前播放位置回调
@param player 播放器player指针
@param position 视频当前播放位置
*/
- (void)onCurrentPositionUpdate:(AliPlayer*)player position:(int64_t)position {
// 更新进度条
}
/**
@brief 视频缓存位置回调
@param player 播放器player指针
@param position 视频当前缓存位置
*/
- (void)onBufferedPositionUpdate:(AliPlayer*)player position:(int64_t)position {
// 更新缓冲进度
}
/**
@brief 获取track信息回调
@param player 播放器player指针
@param info track流信息数组 参考AVPTrackInfo
*/
- (void)onTrackReady:(AliPlayer*)player info:(NSArray<AVPTrackInfo*>*)info {
// 获取多码率信息
}
/**
@brief 字幕显示回调
@param player 播放器player指针
@param index 字幕显示的索引号
@param subtitle 字幕显示的字符串
*/
- (void)onSubtitleShow:(AliPlayer*)player index:(int)index subtitle:(NSString *)subtitle {
// 获取字幕进行显示
}
/**
@brief 字幕隐藏回调
@param player 播放器player指针
@param index 字幕显示的索引号
*/
- (void)onSubtitleHide:(AliPlayer*)player index:(int)index {
// 隐藏字幕
}
/**
@brief 获取截图回调
@param player 播放器player指针
@param image 图像
*/
- (void)onCaptureScreen:(AliPlayer *)player image:(UIImage *)image {
// 预览,保存截图
}
/**
@brief track切换完成回调
@param player 播放器player指针
@param info 切换后的信息 参考AVPTrackInfo
*/
- (void)onTrackChanged:(AliPlayer*)player info:(AVPTrackInfo*)info {
// 切换码率结果通知
}
//...
```
> 具体回调参数的详细说明,参看接口文档。
<a name="8930810a"></a>
### 3. 创建DataSource,准备播放
播放器支持4种播放源:AVPVidStsSource,AVPVidAuthSource,AVPVidMpsSource,AVPUrlSource。其中AVPUrlSource是直接的url播放,其余的三种是通过vid进行播放:AVPVidStsSource推荐点播用户使用;AVPVidAuthSource不建议使用;AVPVidMpsSource仅限MPS用户使用。
以VidSts举例,使用方式如下:
```objectivec
//创建VidSts
AVPVidStsSource *source = [[AVPVidStsSource alloc] init];
source.region = self.接入区域;
source.vid = self.视频vid;
source.securityToken = self.安全token;
source.accessKeySecret = self.临时akSecret;
source.accessKeyId = self.临时akId;
//设置播放源
[self.player setStsSource:source];
//准备播放
[self.player prepare];
```
> MPS视频播放的流程与概念,[参考这里](https://help.aliyun.com/document_detail/53522.html)
> 通过播放凭证VidAuth播放的流程,[参考这里](https://help.aliyun.com/document_detail/57294.html)
> 接入区域Region的设置,参考 [点播中心和访问域名](https://help.aliyun.com/document_detail/98194.html)
<a name="9f5db615"></a>
### 4. 设置显示的view
如果源有画面,那么需要设置显示的view到播放器中,用来显示画面。
```objectivec
self.player.playerView = self.avpPlayerView.playerView;//用户显示的view
```
<a name="622f036c"></a>
### 5. 播放控制
用户自行创建播放器的播放控制按钮,在按钮事件里面实现播放器控制接口。基本控制功能有播放、停止、暂停、拖动(seek),其中Seek功能仅对点播有效,直播使用暂停功能时会使画面停留在当前画面,使用恢复后会开始播放当前画面。使用示例如下:
```objectivec
// 开始播放。
[self.player start];
//暂停播放
[self.player pause];
//停止播放
[self.player stop];
// 跳转到。目前只支持不精准。
[self.player seekToTime:position seekMode:AVP_SEEKMODE_INACCURATE];
// 重置
[self.player reset];
//释放。释放后播放器将不可再被使用。
[self.player destroy];
self.player = nil;
```
<a name="86ac2811"></a>
### 6. 切换多码率
播放器SDK支持HLS多码率地址播放。在`prepare`成功之后,通过`getMediaInfo`可以获取到各个码流的信息,即`TrackInfo`。
```objectivec
AVPMediaInfo *info = [self.player getMediaInfo];
NSArray<AVPTrackInfo*>* tracks = info.tracks;
```
在播放过程中,可以通过调用播放器的`selectTrack`方法切换播放的码流。
```objectivec
[self.player selectTrack:track.trackIndex];
```
切换的结果会在`onTrackChanged`回调:
```objectivec
- (void)onTrackChanged:(AliPlayer*)player info:(AVPTrackInfo*)info {
if (info.trackType == AVPTRACK_TYPE_VIDEO) {
// video changed
}
// etc
}
```
<a name="8b93d7d5"></a>
### 7.自动播放
播放器SDK支持自动播放视频的设置。在`prepare`之前设置autoPlay。
```objectivec
self.player.autoPlay = YES;
```
设置自动播放之后,prepare成功之后,将会自动播放视频。但是注意:自动播放的时候将不会回调`AVPEventPrepareDone`回调,而会回调AVPEventAutoPlayStart回调。
```objectivec
-(void)onPlayerEvent:(AliPlayer*)player eventType:(AVPEventType)eventType {
switch (eventType) {
case AVPEventPrepareDone: {
break;
case AVPEventAutoPlayStart:
break;
}
}
```
<a name="483cbf34"></a>
### 8.循环播放
播放器SDK提供了循环播放视频的功能。设置`loop`开启循环播放, 播放完成后,将会自动从头开始播放视频。
```objectivec
self.player.loop = YES;
```
同时循环开始的回调将会使用`AVPEventLoopingStart`中通知。
<a name="597b947d"></a>
### 9.画面旋转、填充、镜像操作
播放器SDK提供过了多种设置,可以对画面进行精确的控制。包括设置画面旋转模式,设置画面缩放模式,设置镜
没有合适的资源?快使用搜索试试~ 我知道了~
7.(顺序)前一首下一首
共369个文件
swift:137个
h:31个
png:22个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 67 浏览量
2023-03-01
18:29:17
上传
评论
收藏 55.1MB ZIP 举报
温馨提示
7.(顺序)前一首下一首
资源推荐
资源详情
资源评论
收起资源包目录
7.(顺序)前一首下一首 (369个子文件)
0c883173aff8e325bdd150391d735d0861d9d8 1KB
0d615a2412ef68bd21674af036c55ca3c995a6 153B
1034ed0068a031a9daee8cf768b8598ca4cf14 118B
16f2f3feea67f451a86c2e6de00e6c0f3bbe2a 407B
1e47f5c02d31cfdbd776dd340c974b03f040a9 4KB
21b9bb1a35f5de270a41afa01305478221ae32 253B
234ba42226cbb9e4e10ad739bba7cc83c66f06 1KB
23808dde1141a7c8ad1dd4dbf9588fa3db68d5 1KB
3257a7d00cc51c19d02d81f119c077049b2d74 249B
386387f266d1ccf6459cb4400cbeed9e600bd3 58B
3b459bd6cfec618000e009b636c2f281d1d4d3 391B
43157ac40cf86385479795cff2bc97ad6577ee 581B
433d484afb4bfff29e3b25c730c728e93c9bd2 721B
46cc452f551fc6f47b2d705f26f5d7b23ca3da 160B
48899375d6a3bf9eca4112a34d8017bc14ae5a 131B
508329cd48242241b8583a2a4135be19a7975a 114B
542418ed32ac21fc029afa9d135d8c62ec23fe 160B
569f1580d4989a420fa9f5b36c25f507c6ea77 4KB
5c1c4280c2bd849cc7cb98bdb954becd44ca2b 3KB
5d69dba1c41e974f99ba962e0236ff89fb53e7 39KB
5e9329f3767a7c1dd66294b8025bf81dee7d2c 781B
5ea707fa02e101d7fecd628c06ba0e38b66fa5 122B
6176cde812298a59677ebd9e6ef4d9fb9ca33a 205B
641297bf1e13595b7d6ecfdecf42c3109761e6 171B
67aeb311a2232d32af22ad381071d64e5f461e 590B
6a08c2cd55f1ac178618ccc8f84bd0f0ef1476 364B
6bd324c26d854187559f27f8194c8afd1795ac 58B
6c0a7cf143d15c8b25f5d7f7e36fd84e00af92 2KB
714c4a9ec0ddb7f4a80179602c953e671cb66b 96B
781f53a6082e0f1b228bf312acabeae402f3b5 960B
7e4ad8ae9fa2e71b0e74acae6c4057768a2b9a 116B
7f5ff3a1a2932866150e68950c3f5d36bd4cdd 119B
82b52fc1cea66f055b851dea6f5821a8917282 246B
8789700816459c1e1480e0b34781d9fb78a1ca 105B
90e2ce6486c7ab82270e65d562a8ee4816db18 426B
9119b32a564e275f53120c942ecf9d75214b53 86B
9434a6254f0e9651f402737811be6634a03e9c 117B
9535d1d1dd3247bcfaad90dac9200d3c88b77b 140B
95467ffb8f7ea5fe82daddb9c1ac49ba44969b 702B
9a4208174846971cd5a193fa79346f355073f8 97B
9cb045a649eae34a68f3a38032ba8d9ae6e9f5 2KB
9d18d9afdbb632b5baf450c966f30d5e78e0c0 140B
9df098625f128382071ae9707970fe8a086464 95B
a553e4c7ed3909688918c0f869e3e996856513 151B
a763858ecdbea5c897a9fd8fa2225d7223d2ad 749B
aed15d3f3652652e4ef7df49d6a887f17a1618 931B
aef374682ca7f5b16e51a953b3915d5da036a5 123B
alivcffmpeg 43.74MB
AliyunMediaDownloader 4.79MB
AliyunPlayer 67.32MB
b4faa3e4eb9c3482038bb4d47a5267c9154603 1001B
bb467285b102c0d2b3b5b81415eccb050dfe1b 169B
bd2534a49b7f0546268f468ce530ff2f1924b5 160B
c00596a7fca3f3d4bdd64053b69d86745f9e10 66B
c026596487a8e2f47606c5cee4e1c29aec15de 161B
c0636735e8bed4c881c2cc144eb13a68a7f773 464B
c19cc17a1d6452956495c8f392c3673f08a9eb 69B
c9689ca62229261e28684ae4839760a1527665 119B
COMMIT_EDITMSG 15B
config 137B
d0b5e1878e575d1594ffdc7d2fdc6cf26f6321 158B
d0fa079f9dbdb6071e0cb2e6808a3a41d3ba85 113B
d57bbcbf6841ab97c4975d88f2922c6812294b 1KB
d77164ac2ea427d660410256d5d496e9483515 941B
d89c54405b6c65eaf1d03cf824ad9033d45d9e 1KB
d9b549124695030f9e377446e547f3fd5dc079 243B
de8039d81dd49f7e3e32fd426e90ca691c03a0 193B
description 73B
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
e2868ec7db2854b4a57b530739f139468d95fa 168B
e81cf272994f934a539e616a3d60444037570f 165B
ee8f9f49389ba58d22df8e18589600866a8a16 366B
exclude 40B
f55b1eed2cf5c09b7e75d80e91e643c9ed0d47 1KB
f8b4583a1af3a53d55ec726a5ed0edbd699601 97B
fc1beab57ccd8bb5a93af51369db463d3492f0 967B
fc96d71a41a95b7e2c0fff6330bc91c32da4ac 133B
fe85f8d6cb2c951756d0271aa3fc0ca4cca1b5 124B
AVPErrorCode.h 25KB
AliPlayer.h 23KB
AVPSource.h 10KB
AVPDelegate.h 9KB
AVPDef.h 8KB
AliPlayerGlobalSettings.h 7KB
AliListPlayer.h 6KB
CicadaFrameInfo.h 6KB
AVPConfig.h 5KB
AVPMediaInfo.h 4KB
AliMediaDownloader.h 4KB
AliMediaLoader.h 2KB
AMDDelegate.h 2KB
AliVodMediaLoader.h 2KB
AVPLiveTimeShift.h 2KB
VidPlayerConfigGen.h 2KB
AVPLiveKeyGenerator.h 1KB
共 369 条
- 1
- 2
- 3
- 4
资源评论
冯汉栩
- 粉丝: 241
- 资源: 469
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功