本文提供快速集成iOS播放器SDK的指引。
环境要求
- 系统版本:支持iOS 8.0及以上版本。 
- 开发工具:建议使用Xcode,本文操作步骤基于Xcode开发。下载地址:Xcode。 
前提条件
注意事项
- 在进行打包时,dSYM文件用于crash符号表解析。 
- 使用iOS播放器SDK时,AlivcFFmpeg和AliyunPlayer都是必需的,缺一不可。播放器头文件位于AliyunPlayer。 
- 如需同时集成播放器SDK和短视频SDK,则需要关注短视频SDK、播放器SDK及AlivcFFmpeg的版本依赖关系,否则会导致短视频或播放器的功能使用失败,详细信息,请参见AlivcFFmpeg版本依赖。 
- iOS播放器SDK在模拟器上调试不能保证所有功能的正常运行,建议iOS播放器SDK集成完成后使用真机进行运行调试。 
- iOS播放器SDK提供的安装包中包含了模拟器,模拟器可用于代码调试,发布时,不能包含模拟器,否则会提交AppStore失败。 
视频教程
步骤一:SDK集成
CocoaPods集成
- 安装 CocoaPods (依赖于Ruby 环境)。 - // 在终端输入 sudo gem install cocoapods
- 验证CocoaPods。 - 安装完成后,您可以通过在终端中运行 - pod --version来验证 CocoaPods 是否正确安装。- xxx@ ~ % pod --version 1.16.2
- 创建 Podfile 文件。 - 在终端中,进入到您的项目目录。执行 Podfile 创建命令 - pod init。- // 进入您的项目目录 xxx@ ~ % cd /path/yourProject // 生成 xxx@ yourProject % pod init
- 编辑Podfile文件,添加播放器SDK依赖。 说明- 如需同时集成播放器SDK和短视频SDK,将下面代码中的 - AliPlayerSDK_iOS替换成- AliPlayerPartSDK_iOS,- AliPlayerPartSDK_iOS不包含ffmpeg,可以避免与短视频SDK中的ffmpeg冲突。
- 请确保引入的播放器SDK版本号填写正确,否则将报错并引入失败。播放器SDK的版本可以从iOS SDK发布历史查看。 
 - source 'https://github.com/CocoaPods/Specs.git' platform:ios, '8.0' target 'yourProject' do # 播放器SDK 建议使用最新版本 pod 'AliPlayerSDK_iOS' end
- (可选)添加指定版本的播放器SDK依赖。 - source 'https://github.com/CocoaPods/Specs.git' platform:ios, '8.0' player_sdk_version = '7.8.0' target 'yourProject' do # 播放器SDK 建议使用最新版本 pod 'AliPlayerSDK_iOS' , player_sdk_version end
- 安装依赖。 - 执行安装命令,将播放器SDK依赖到本地库。 - pod install- 示例结果如下,证明安装成功。 - xxx@ yourProject % pod install Analyzing dependencies Downloading dependencies Installing AliPlayerSDK_iOS (7.8.0) Generating Pods project Integrating client project Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.- 执行如下命令,更新播放器SDK。 - pod update AliPlayerSDK_iOS
本地集成
如需同时集成播放器SDK和短视频SDK,则只需要引入一个AlivcFFmpeg即可,并请保证引入的AlivcFFmpeg版本正确。
- 下载 iOS播放器SDK。 
- 将播放器对应的 FrameWork 添加到Frameworks,Libraries,and Embedded Content中,并将Embed设置为Embed & Sign。 - alivcffmpeg.framework:播放器底层。 
- AliyunMediaDownloader.framework:用于离线下载。 
- AliyunPlayer.framework:播放器。  
 
- 单击Build Settings页签。 
- 单击Search Paths区域下的Framework Search Paths,修改为本地framework所在的目录。 
超低延时直播集成(cocoapods集成)(可选)
如果您需要集成RTS超低延时直播组件,详情请参见iOS端实现RTS拉流。
步骤二:License配置
使用全球(不包含中国内地及港澳台)环境时,请确保在调用任何播放器API之前,已调用下述接口更新默认配置为国际站环境。
- 方式一:调用下述接口更新默认配置为国际站环境。 - // 使用全球(不包含中国内地及港澳台)环境时,请确保在调用任何播放器API之前,已调用下述接口更新默认配置为国际站环境,以确保后续所有业务都是在国际站环境下运行 // 通过AlivcBase统一接口,设置国际站环境,运行期间不支持修改 AlivcBase.EnvironmentManager.globalEnvironment = ENV_SEA;
- 方式二(推荐):V7.6.0及以上播放器版本进行配置时,可通过 - Info.Plist方法配置国际站环境。- 打开 - Info.plist文件,修改- AlivcEnv为- SEA。- //配置当前环境为国际站环境 <key>AlivcEnv</key> <string>SEA</string>- 配置示例如下:  
在iOS端接入License,详情请参见iOS端接入License。
5.4.7.1及之后版本的iOS播放器SDK,在配置License后,需要在播放器实例初始化前主动调用初始化证书服务。代码示例如下:
[AliPrivateService initLicenseService];步骤三:开启日志(可选)
开启日志能够帮助快速定位并排查问题,还能为性能优化和用户体验提升提供数据支持,可根据实际业务场景选择是否设置。日志获取请参考获取SDK日志。
// 打开日志开关
[AliPlayer setEnableLog:YES];
// 设置日志级别,默认为LOG_LEVEL_INFO,如需排查问题,请设置为LOG_LEVEL_TRACE
[AliPlayer setLogCallbackInfo:LOG_LEVEL_INFO callbackBlock:nil];项目结构说明
| Framework | 说明 | 
| alivcffmpeg.framework | 播放器底层,必须。 | 
| AliyunMediaDownloader.framework | 用于离线下载,非必须。 | 
| AliyunPlayer.framework | 播放器,必须。 | 
| artcSource.framework | 支持artc协议,非必须。 说明  如果需要支持artc协议,还需要追加RtsSDK.framework具体接入流程请参见:iOS端实现RTS拉流。 | 
| aemFilter.framework | 音频增强,非必需。 | 
| libPluginSR.framework | 视频超分,非必需。 | 
| normalsrFilter.framework | 视频超分,非必需。 | 
| mpfFilter.framework | 视频超分,非必需。 | 
| srFilter.framework | 视频超分,非必需。 | 
| vfiFilter.framework | 视频插帧,非必需。 | 
| vvcCodecPlugin.framwork | H.266解码插件,非必需。 | 
常见集成问题
Cocoapods 如何使用
您的代码或引用的第三方代码,在集成时报与AlivcFFmpeg的symbol有冲突
解决方案如下:
- 报与AlivcFFmpeg的symbol有冲突:您需要删除多余的AlivcFFmpeg,仅保留一个AlivcFFmpeg即可。由于AlivcFFmpeg是对ffmpeg的拓展和定制,是阿里云播放器SDK实现的关键,因此,建议您删除第三方的AlivcFFmpeg,保留阿里云iOS播放器SDK的AlivcFFmpeg引用,但由此可能造成第三方播放器无法正常使用等的问题请您知悉。 
sandBox 报错
- 问题如下:  
- 解决方案如下: - 将 UserSetting 中的 User Script SandBoxing 设置为 NO。  
短视频集成
如果您需要同时集成iOS端播放器SDK和短视频SDK至您的项目中,建议您使用iOS端一体化SDK进行集成。否则,可能会出现类重复的问题,从而导致编译失败。
更多关于播放器使用过程中出现的问题及解决方案,请参见播放器常见问题汇总。