本文提供快速集成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.5.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.5.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进行集成。否则,可能会出现类重复的问题,从而导致编译失败。
更多关于播放器使用过程中出现的问题及解决方案,请参见播放器常见问题汇总。