本文提供快速集成iOS端播放器SDK的指引。
环境要求
类别 | 说明 |
系统版本 | 支持iOS 8.0及以上版本。 |
开发工具 | 建议使用Xcode,本文操作步骤基于Xcode开发。下载地址:Xcode。 |
前提条件
已注册并获取包含播放器授权的License文件
AliVideoCert-********.crt
。具体操作,请参见管理License。本地集成SDK时,需要先下载iOS端播放器SDK包(包含了iOS端播放器SDK及Demo源码),推荐下载使用最新版本。下载地址请参见播放器SDK。
解压后的目录结构如下:
文件名 | 作用 |
demo | iOS端播放器SDK的Demo源码。 |
doc | iOS端播放器SDK接口文档。 |
sdk | iOS端播放器SDK的framework库,只提供了包含bitcode和模拟器的ARM_SIMULATOR文件夹,如果需要不包含bitcode或模拟器的包,请参考以下命令生成并下载。
|
ReleaseNote | 版本说明。 |
执行sh createMoreKindsOfArch.sh
命令后,生成的各文件说明如下:
文件名 | 说明 |
ARM | 包含bitcode,不包含模拟器。 |
ARM_NO_BITCODE | 不包含bitcode,不包含模拟器。 |
ARM_SIMULATOR | 包含bitcode,包含模拟器。 |
Framework说明如下:
Framework | 说明 |
alivcffmpeg.framework | 播放器底层,必须。 |
AliyunMediaDownloader.framework | 用于离线下载,非必须。 |
AliyunPlayer.framework | 播放器,必须。 |
artcSource.framework | 支持artc协议,非必须。 |
artpSource.framework | 支持artp协议,非必须。在5.4.5.0版本已经移除了对它的依赖。 |
RtsSDK.framework | 超低延时直播,非必须。 |
AlivcConan | 在5.3.0版本已经移除了对它的依赖。 |
注意事项
在进行打包时,dSYM文件用于crash符号表解析。
使用iOS端播放器SDK时,AlivcFFmpeg和AliyunPlayer都是必需的,缺一不可。播放器头文件位于AliyunPlayer。
如需同时集成播放器SDK和短视频SDK,则需要关注短视频SDK、播放器SDK及AlivcFFmpeg的版本依赖关系,否则会导致短视频或播放器的功能使用失败,详细信息,请参见AlivcFFmpeg版本依赖。
iOS端播放器SDK在模拟器上调试不能保证所有功能的正常运行,建议iOS端播放器SDK集成完成后使用真机进行运行调试。
iOS端播放器SDK提供的安装包中包含了模拟器,模拟器可用于代码调试,发布时,不能包含模拟器,否则会提交AppStore失败。
SDK集成(cocoapods集成)(推荐)
采用pod语句集成播放器SDK,示例代码如下:
说明如需同时集成播放器SDK和短视频SDK,将下面代码中的
AliPlayerSDK_iOS
替换成AliPlayerPartSDK_iOS
,AliPlayerPartSDK_iOS
不包含ffmpeg,可以避免与短视频SDK中的ffmpeg冲突。ruby platform:ios, '8.0' target 'yourProject' do pod 'AliPlayerSDK_iOS' end
可选:如果需要支持artc协议或播放超低延时直播(RTS)流,请添加以下pod依赖,示例代码如下:
说明请确保引入的播放器SDK版本号填写正确,否则将报错并引入失败。
ruby platform:ios, '8.0' target 'yourProject' do pod 'AliPlayerSDK_iOS', '5.4.7.1' pod 'AliPlayerSDK_iOS_ARTC', '5.4.7.1' pod 'RtsSDK', '2.2.0' //此处版本仅供参考,获取最新RTS SDK的版本请参见超低延时直播SDK下载。 end
SDK集成(本地集成)
如需同时集成播放器SDK和短视频SDK,则只需要引入一个AlivcFFmpeg即可,并请保证引入的AlivcFFmpeg版本正确。
在Xcode工程中,单击General页签。
将SDK的framework添加到Frameworks,Libraries,and Embedded Content中,并将Embed设置为Embed & Sign。
单击Build Settings页签。
单击Search Paths区域下的Framework Search Paths,修改为本地framework所在的目录。
iOS端接入License
配置License。
在Xcode工程里,将获取到的证书文件
AliVideoCert-********.crt
拷贝到Xcode的项目中,建议放到AppSupportFiles目录下,也可以放到沙箱或者其他路径。并在Target Membership中选中当前项目。打开Info.plist,分别修改AlivcLicenseKey、AlivcLicenseFile(全球环境)或AlivcLicenseKey_SEA、AlivcLicenseFile_SEA(国际站环境)为申请License时获取的License Key和License文件路径。
重要针对国际站用户,若需使用播放器SDK,且播放器SDK为6.14.0及以上版本,请务必配置国际站环境License;若不使用播放器SDK,可以仅配置全球环境License。
您可以同时接入2套License(1套全球环境License,1套国际站环境License),后续在每次App启动后,通过配置播放器的服务环境,来指定播放器的运行环境。播放器运行过程中,不支持切换环境。
//全球环境License配置(默认配置) <key>AlivcLicenseFile</key> <string>XXX</string> <key>AlivcLicenseKey</key> <string>foIVziMaUHaRqgDyhf6b6eb8fcf014af39535d0720a32****</string> // 国际站环境License配置,手动在末尾添加_SEA <key>AlivcLicenseFile_SEA</key> <string>XXX</string> <key>AlivcLicenseKey_SEA</key> <string>f6b6efoIVziMaUHaRqgDyhb8fcf014af39535d0a32072****</string>
配置播放器SDK的服务环境(使用国际站环境必配)。
播放器SDK自6.14.0版本开始支持选择服务环境,6.14.0及以上版本的播放器SDK默认为全球环境配置。如需使用国际站环境(目前国际站用户仅支持使用国际站环境),则须在每次App启动后,按照下述方法将播放器SDK配置更新为国际站环境,否则播放器SDK的License会鉴权失败;其他版本及SDK的使用场景下,可忽略此步骤。
// 使用国际站环境时,请确保在调用任何播放器API之前,已调用下述接口更新默认配置为国际站环境,以确保后续所有业务都是在国际站环境下运行 // 通过AlivcBase统一接口,设置国际站环境,运行期间不支持修改 AlivcBase.EnvironmentManager.globalEnvironment = ENV_SEA;
常见集成问题
您的代码或引用的第三方代码,在集成时报与AlivcFFmpeg或AlivcConan的symbol有冲突
解决方案如下:
报与AlivcConan的symbol有冲突:因为AlivcConan从5.3.0版本开始不再需要依赖,您可以将AlivcConan从Linked Frameworks and Libraries里删除,app link可以不依赖AlivcConan。
报与AlivcFFmpeg的symbol有冲突:您需要删除多余的AlivcFFmpeg,仅保留一个AlivcFFmpeg即可。由于AlivcFFmpeg是对ffmpeg的拓展和定制,是阿里云播放器SDK实现的关键,因此,建议您删除第三方的AlivcFFmpeg,保留阿里云iOS端播放器SDK的AlivcFFmpeg引用,但由此可能造成第三方播放器无法正常使用等的问题请您知悉。
更多关于播放器使用过程中出现的问题及解决方案,请参见iOS端。