快速集成

本文提供快速集成iOS播放器SDK的指引。

环境要求

  • 系统版本:支持iOS 8.0及以上版本。

  • 开发工具:建议使用Xcode,本文操作步骤基于Xcode开发。下载地址:‎Xcode

前提条件

  • 已注册并获取包含播放器授权的License文件AliVideoCert-********.crt。具体操作,请参见获取License

  • 本地集成SDK时,需要先下载iOS播放器SDK包(包含了iOS播放器SDKDemo源码)。推荐下载使用最新版本,下载地址请参见播放器SDK

注意事项

  • 在进行打包时,dSYM文件用于crash符号表解析。

  • 使用iOS播放器SDK时,AlivcFFmpegAliyunPlayer都是必需的,缺一不可。播放器头文件位于AliyunPlayer。

  • 如需同时集成播放器SDK和短视频SDK,则需要关注短视频SDK、播放器SDKAlivcFFmpeg的版本依赖关系,否则会导致短视频或播放器的功能使用失败,详细信息,请参见AlivcFFmpeg版本依赖

  • iOS播放器SDK在模拟器上调试不能保证所有功能的正常运行,建议iOS播放器SDK集成完成后使用真机进行运行调试。

  • iOS播放器SDK提供的安装包中包含了模拟器,模拟器可用于代码调试,发布时,不能包含模拟器,否则会提交AppStore失败。

SDK集成(cocoapods集成)(推荐)

  1. 采用pod语句集成播放器SDK,示例代码如下:

    说明

    如需同时集成播放器SDK和短视频SDK,将下面代码中的AliPlayerSDK_iOS替换成AliPlayerPartSDK_iOSAliPlayerPartSDK_iOS不包含ffmpeg,可以避免与短视频SDK中的ffmpeg冲突。

    ruby
      platform:ios, '8.0'
      target 'yourProject' do
          # 播放器SDK 建议使用最新版本,详情请参考: https://help.aliyun.com/zh/vod/developer-reference/sdk-overview-and-download?spm=a2c4g.11186623.0.0.63cde7ea3nNYgA#section-v53-2oj-xfd
          pod 'AliPlayerSDK_iOS'
       end
  2. 可选:如果需要支持artc协议或播放超低延时直播(RTS)流,请添加以下pod依赖,示例代码如下:

    说明

    请确保引入的播放器SDK版本号填写正确,否则将报错并引入失败。

    ruby
      platform:ios, '8.0'
      target 'yourProject' do
         # 播放器SDK 建议使用最新版本,详情请参考: https://help.aliyun.com/zh/vod/developer-reference/sdk-overview-and-download?spm=a2c4g.11186623.0.0.63cde7ea3nNYgA#section-v53-2oj-xfd
          pod 'AliPlayerSDK_iOS'
         # 超低延迟直播 建议使用最新版本 详情请参考: https://help.aliyun.com/zh/live/user-guide/pull-streams-over-rts-on-ios?spm=a2c4g.11186623.help-menu-29949.d_2_11_0_6_1.5edb659e1iPsz6
          pod 'AliPlayerSDK_iOS_ARTC', '6.19.0'
          pod 'RtsSDK', '2.6.3'
         # 此处版本仅供参考,获取最新RTS SDK的版本请参见超低延时直播SDK下载。 
       end

SDK集成(本地集成)

说明

如需同时集成播放器SDK和短视频SDK,则只需要引入一个AlivcFFmpeg即可,并请保证引入的AlivcFFmpeg版本正确。

  1. Xcode工程中,单击General页签。

  2. SDKframework添加到Frameworks,Libraries,and Embedded Content中,并将Embed设置为Embed & Sign

    本地集成

  3. 单击Build Settings页签。

  4. 单击Search Paths区域下的Framework Search Paths,修改为本地framework所在的目录。

iOS端接入License

  1. 配置License。

    1. Xcode工程里,将获取到的证书文件AliVideoCert-********.crt拷贝到Xcode的项目中,建议放到AppSupportFiles目录下,也可以放到沙箱或者其他路径。并在Target Membership中选中当前项目。

      p687320

    2. 打开Info.plist,分别修改AlivcLicenseKeyAlivcLicenseFile(全球环境)或AlivcLicenseKey_SEAAlivcLicenseFile_SEA(国际站环境)为申请License时获取的License KeyLicense文件路径。

      重要
      • 针对国际站用户,若需使用播放器SDK,且播放器SDK6.14.0及以上版本,请务必配置国际站环境License;若不使用播放器SDK,可以仅配置全球环境License。

      • 您可以同时接入2License(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>
  2. 配置播放器SDK的服务环境(使用国际站环境必配)。

    播放器SDK6.14.0版本开始支持选择服务环境,6.14.0及以上版本的播放器SDK默认为全球环境配置。如需使用国际站环境(目前国际站用户仅支持使用国际站环境),则须在每次App启动后,按照下述方法将播放器SDK配置更新为国际站环境,否则播放器SDKLicense会鉴权失败;其他版本及SDK的使用场景下,可忽略此步骤。

    // 使用国际站环境时,请确保在调用任何播放器API之前,已调用下述接口更新默认配置为国际站环境,以确保后续所有业务都是在国际站环境下运行
    // 通过AlivcBase统一接口,设置国际站环境,运行期间不支持修改
    AlivcBase.EnvironmentManager.globalEnvironment = ENV_SEA;

项目结构说明

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

视频插帧,非必需。

常见集成问题

您的代码或引用的第三方代码,在集成时报与AlivcFFmpegAlivcConansymbol有冲突

解决方案如下:

  • 报与AlivcConansymbol有冲突:因为AlivcConan5.3.0版本开始不再需要依赖,您可以将AlivcConanLinked Frameworks and Libraries里删除,app link可以不依赖AlivcConan。

  • 报与AlivcFFmpegsymbol有冲突:您需要删除多余的AlivcFFmpeg,仅保留一个AlivcFFmpeg即可。由于AlivcFFmpeg是对ffmpeg的拓展和定制,是阿里云播放器SDK实现的关键,因此,建议您删除第三方的AlivcFFmpeg,保留阿里云iOS播放器SDKAlivcFFmpeg引用,但由此可能造成第三方播放器无法正常使用等的问题请您知悉。

sandBox 报错

  • 问题如下:

    截屏2024-12-06 16

  • 解决方案如下:

    将 UserSetting 中的 User Script SandBoxing 设置为 NO。

    1735888658101-5633103e-468d-4341-adaa-f5f52814aa36

更多关于播放器使用过程中出现的问题及解决方案,请参见播放器问题

功能使用文档

基础功能

进阶功能