Demo源码提供了播放器的常用功能示例,集成播放器SDK前,可以先运行Demo源码以了解和体验播放器SDK的功能。您也可以不单独集成SDK,直接集成完整的Demo源码来直接使用播放器SDK,或根据需要集成Demo源码中的部分模块来使用。
体验Demo
体验Demo提供了完整的产品级的交互UI和业务源码,包含短视频、播放器和上传等SDK。您可以扫描二维码下载Demo App体验阿里云播放器相关功能。二维码地址请参见Demo体验。同时阿里云也免费提供Android播放器SDK Demo源码。iOS端播放器SDK Demo源码中内置了UI,以下分别介绍使用和不使用内置的UI来集成播放器Demo源码的场景及操作步骤。
场景 | 说明 |
运行完整Demo(含内置UI) | 适用于需要使用内置UI,且想要使用Demo源码中提供的所有功能。 此场景下无需单独集成SDK,直接导入完整的Demo源码并运行即可。 |
集成Demo模块(含内置UI) | 适用于需要使用内置UI,但只想使用Demo源码中的部分功能。 此场景下无需单独集成SDK,只需选择性的导入Demo源码中的功能模块运行即可。 |
集成Demo(不含内置UI) | 适用于不需要内置UI(自定义UI或不使用UI),又想省去自己开发的麻烦,直接使用Demo中封装好的功能。 此场景下需要先集成SDK,再集成Demo中的相关文件。 |
环境要求
类别 | 说明 |
系统版本 | 支持iOS 8.0及以上版本。 |
手机芯片 | 架构要求:
|
开发工具 | 推荐使用Xcode,本文操作步骤基于Xcode开发。下载地址:Xcode。 |
前提条件
下载iOS端播放器SDK包(包含了播放器SDK及Demo源码),推荐下载使用最新版本。下载地址请参见播放器SDK。
解压后的目录结构如下:
文件名 | 作用 |
demo | 播放器的Demo源码。Demo源码的目录结构参见表 2。 |
doc | 播放器API文档。 |
sdk | 播放器SDK的framework库。 |
ReleaseNote | 版本说明。 |
demo目录结构如下:
模块名 | 模块作用 |
AlivcBasicVideo | 播放器基础核心模块,对应播放器SDK Api调用逻辑。 说明 此模块必须导入,播放器SDK核心库。 |
AlivcPlayVideo | 播放相关模块,对应播放器调用的示例代码。 说明 此模块基于AlivcBasicVideo,使用此模块必须导入AlivcBasicVideo。 |
AlivcCommon | 阿里云项目公共模块,包括一些工具类。 说明 此模块必须导入,无论导入Demo中的哪一个和播放器相关的模块,都需要导入此模块。 |
AliyunVideoClient_Entrance.xcodeproj | Xcode组织工程项目的文件。 |
AliyunVideoClient_Entrance.xcworkspace | 阿里云项目工程总入口,需要打开xcworkspace文件使用Xcode编译运行。 |
Podfile | 使用cocoapods管理第三方库文件。 |
Podfile.lock | 使用cocoapods生成的下载的第三方库版本相关信息。 |
Pods | 使用cocoapods生成的下载的第三方库文件目录。 |
运行完整Demo(含内置UI)
通过使用Xcode运行完整的播放器SDK Demo包,可不再单独集成SDK,直接开始使用包含了内置UI的播放器功能。
在demo目录下选择AliyunVideoClient_Entrance.xcworkspace,双击使用Xcode打开工程。
使用Xcode打开工程后,选中红框中AliyunVideoClient_Entrance,然后将bundle identifier替换为自己的。
替换bundle id的同时,如果下载的播放器Demo指向的播放器SDK版本是5.5.3.0以上的,则需要在Info中增加对license的支持。申请配置license,将获取的licenseKey填入Info中的AlivcLicenseKey条目的Value中;将license.crt文件放到工程如红框目录下。
集成Demo模块(含内置UI)
通过选择导入播放器SDK Demo源码中的部分模块,选择性的使用封装好的包含内置UI播放器的部分功能。
将AlivcBasicVideo、AlivcPlayVideo和AlivcCommon文件夹整体拷贝到自己建的代码工程中去。
可以在拷贝上述三个文件夹的时候,分别将文件夹中的Example、LiCENSE、README.md文件删除,只保留podspc和同名子文件夹内容,减少工程包体大小。
在上述三个文件夹同级目录下创建Podfile文件,实现组件化工程。按照下图红框的形式pod本地podspec文件。
执行pod install后,会自动生成pod相关内容,里面包含有集成到工程的AlivcBasicVideo、AlivcPlayVideo和AlivcCommon文件夹内容,以及播放器SDK pod集成文件。
根据体验Demo编译运行界面,含有内置UI功能代码入口在AlivcPlayVideo组件下AlivcPlayVideo/Classes文件夹下内容,分别是:
UI功能
UI功能代码文件夹入口
UI功能代码入口ViewController
视频播放
PlayConfig
AlivcVideoPlayConfigViewController
播放列表
PlayList
SimplePlayerViewController
直播时移
TimeShift
AlivcVideoPlayTimeShiftViewController
在工程首页ViewController中执行跳转到相应的UI功能代码入口ViewController中。如视频播放界面跳转逻辑如下:
#import "AlivcVideoPlayConfigViewController.h" // 跳转逻辑 AlivcVideoPlayConfigViewController *vc = [[AlivcVideoPlayConfigViewController alloc] init]; [self.navigationController pushViewController:vc animated:YES];
说明如果不需要全部内置UI功能,可以自行选择删除相应的AlivcPlayVideo组件的UI功能代码文件夹入口,以及在AlivcBasicVideo组件下的AlivcBasicVideo/Assets文件夹下的对应资源文件。
集成Demo(不含内置UI)
播放器Demo中包含许多内置UI,如果您不需要内置UI(自定义UI或不使用UI),又想省去自己开发的麻烦,直接使用Demo中封装好的功能,则可以通过以下步骤实现。
集成播放器SDK。
可以直接复用AlivcBasicVideo组件下的AlivcBasicVideo.podspec,pod集成播放器SDK。
也可以自行在工程Podfile文件中pod集成,或是工程合适的地方本地集成,请参见集成iOS端播放器SDK。
集成Demo中部分代码。
可以使用AlivcBasicVideo组件文件夹下AlivcBasicVideo/Classes/AlivcBasicVideo路径下的文件选择性集成到工程中使用。
Classes/AlivcBasicVideo/LongBasicView文件夹下的AlivcLongVideoPlayView文件是封装好的播放窗口View组件,可以将AlivcLongVideoPlayView文件及依赖的其他文件集成到工程中进行使用。
使用AlivcLongVideoPlayView。
在播放页面添加AlivcLongVideoPlayView实例。
#import "AlivcLongVideoPlayView.h" @interface AlivcLongVideoViewController ()<AliyunVodPlayerViewDelegate> @property (nonatomic, strong) AlivcLongVideoPlayView *playerView; @end - (void)viewDidLoad { [self.view addSubview:self.playerView]; } - (AlivcLongVideoPlayView *)playerView { if (!_playerView) { _playerView = [[AlivcLongVideoPlayView alloc]init]; _playerView.delegate = self; } return _playerView; }
调用播放控制相关逻辑。
/// 准备播放,可根据对外的方法任选调用 // 传入url进行准备播放 NSURL *URL = [NSURL URLWithString:@"xxxx"]; // xxxx 代表url字符串 [self.playerView playViewPrepareWithURL:URL]; // 传入AlivcVideoPlayPlayerConfig实例进行准备播放 AlivcVideoPlayPlayerConfig *config = [[AlivcVideoPlayPlayerConfig alloc] init]; config.sourceType = SourceTypeUrl; config.urlSource = [[AVPUrlSource alloc] urlWithString:@"xxxx"]; [self.playerView playWithPlayerConfig:config]; // 开始播放 [self.playerView start]; // 暂停播放 [self.playerView pause]; // 停止播放 [self.playerView stop]; // 销毁播放器 [self.playerView releasePlayer];
说明上述代码展示了部分接口,其余部分的接口可以参照AlivcBasicVideo组件文件的示例代码来使用,也可以根据播放器SDK的API接口文档自己创建播放器实例进行播放。
故障排除
遇到播放器相关问题可以参考iOS端进行排查解决。