全部產品
Search
文件中心

ApsaraVideo VOD:整合SDK

更新時間:Dec 06, 2025

本文提供快速整合iOS播放器SDK的指引。

環境要求

  • 系統版本:支援iOS 8.0及以上版本。

  • 開發工具:建議使用Xcode,本文操作步驟基於Xcode開發。下載地址:‎Xcode

  • 使用限制:iOS播放器SDK不支援模擬器,整合完成後需要真機運行。

前提條件

  • 登入並擷取包含播放器授權的License檔案AliVideoCert-********.crt。具體操作,請參見擷取License

  • 本地整合SDK時,需要先下載iOS播放器SDK包,推薦下載最新版本。

注意事項

  • 在進行打包時,dSYM檔案用於crash符號表解析。

  • 使用iOS播放器SDK時,AlivcFFmpeg和AliyunPlayer都是必需的,缺一不可。播放器標頭檔位於AliyunPlayer。

  • 如需同時整合播放器SDK和短視頻SDK,則需要關注短視頻SDK、播放器SDK及AlivcFFmpeg的版本依賴關係,否則會導致短視頻或播放器的功能使用失敗,詳細資料,請參見AlivcFFmpeg版本依賴

  • iOS播放器SDK提供的安裝包中包含了模擬器,發布前需移除模擬器架構,否則會提交AppStore失敗。

步驟一:SDK整合

CocoaPods整合

  1. 安裝 CocoaPods (依賴於Ruby 環境)。

    // 在終端輸入
    sudo gem install cocoapods
  2. 驗證CocoaPods。

    安裝完成後,您可以通過在終端中運行pod --version來驗證 CocoaPods 是否正確安裝。

    xxx@ ~ % pod --version
    1.16.2
  3. 建立 Podfile 檔案。

    在終端中,進入到您的專案目錄。執行 Podfile 建立命令 pod init

    // 進入您的專案目錄
    xxx@ ~ %  cd /path/yourProject
    // 產生
    xxx@ yourProject % pod init
  4. 編輯Podfile檔案,添加播放器SDK依賴。

    說明
    • 如需同時整合播放器SDK和短視頻SDK,將下面代碼中的AliPlayerSDK_iOS替換成AliPlayerPartSDK_iOSAliPlayerPartSDK_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
  5. (可選)添加指定版本的播放器SDK依賴。

    source 'https://github.com/CocoaPods/Specs.git'
    platform:ios, '8.0'
    
    player_sdk_version = '7.10.0'
    
    target 'yourProject' do
        # 播放器SDK 建議使用最新版本
        pod 'AliPlayerSDK_iOS' , player_sdk_version
    end
  6. 安裝依賴。

    執行安裝命令,將播放器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版本正確。

  1. 下載 iOS播放器SDK

  2. 將播放器對應的 FrameWork 添加到Frameworks,Libraries,and Embedded Content中,並將Embed設定為Embed & Sign

    • alivcffmpeg.framework:播放器底層。

    • AliyunMediaDownloader.framework:用於離線下載。

    • AliyunPlayer.framework:播放器。

      本地整合

  3. 單擊Build Settings頁簽。

  4. 單擊Search Paths地區下的Framework Search Paths,修改為本地framework所在的目錄。

超低延時直播整合(cocoapods整合)(可選)

如果您需要整合RTS超低延時直播組件,詳情請參見iOS端實現RTS拉流

步驟二:License配置

重要

使用全球(不包含中國內地及港澳台)環境時,請確保在調用任何播放器API之前,已調用下述介面更新預設配置為國際站環境。

  1. 方式一:調用下述介面更新預設配置為國際站環境。

    // 使用全球(不包含中國內地及港澳台)環境時,請確保在調用任何播放器API之前,已調用下述介面更新預設配置為國際站環境,以確保後續所有業務都是在國際站環境下運行
    // 通過AlivcBase統一介面,設定國際站環境,運行期間不支援修改
    AlivcBase.EnvironmentManager.globalEnvironment = ENV_SEA;
  2. 方式二(推薦)V7.6.0及以上播放器版本進行配置時,可通過Info.Plist方法配置國際站環境。

    開啟Info.plist檔案,修改AlivcEnvSEA

    //配置當前環境為國際站環境
    <key>AlivcEnv</key>
    <string>SEA</string>

    配置樣本如下:1754557498401-1d235342-3c0b-4c83-bcee-ae7656e8ff23

在iOS端接入License,詳情請參見iOS端接入License

步驟三:開啟日誌(可選)

開啟日誌能夠協助快速定位並排查問題,還能為效能最佳化和使用者體驗提升提供資料支援,可根據實際業務情境選擇是否設定。日誌擷取請參考擷取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 如何使用

Cocoapods 如何使用

// 分離專案和 CocoaPods 依賴 
pod deintegrate 

// 更新本地 CocoaPods 源的索引,當你需要添加新依賴項時,
// 使用情境:
// 當你添加新依賴項時,它可以確保你能擷取到最新可用的版本。
// 當你遇到某個庫的版本不可用時,或者你知道有新版本但沒有在你的專案中顯示出來,你可以使用此命令進行更新。
pod repo update

// 更新專案的 Pods。
// 使用情境:
// 當你想要更新專案中所有的 pods 到支援的最新版本時使用。
// 你可能在 Podfile 中指定了一些依賴項的版本範圍,使用 pod update 會嘗試滿足這些範圍,並更新對應的庫。
pod update

// 執行與 pod install 相同的功能,但在安裝之前,會強制更新本地 CocoaPods 倉庫的索引
// 使用情境:
// 當您添加新庫或希望使用 Podfile 中指定庫的最新版本時,使用這個命令是一個好主意。尤其是在您看到報錯資訊,提示所需庫的版本不可用時
pod install --repo-update

// 清理緩衝的 Pod
// 注意事項:
// 1、清理緩衝不會修改您的 Podfile.lock 或 Podfile 檔案。因此,一旦您運行 pod install 或 pod update,CocoaPods 將根據現有的資訊清單檔和鎖定檔案的狀態重新下載需要的庫。
// 2、通常,清除緩衝並不是一個常規步驟,只在面對特定問題時才需要使用。正常情況下,CocoaPods 可以很好地處理其緩衝。
pod cache clean --all

您的代碼或引用的第三方代碼,在整合時報與AlivcFFmpeg的symbol有衝突

解決方案如下:

  • 報與AlivcFFmpeg的symbol有衝突:您需要刪除多餘的AlivcFFmpeg,僅保留一個AlivcFFmpeg即可。由於AlivcFFmpeg是對ffmpeg的拓展和定製,是阿里雲播放器SDK實現的關鍵,因此,建議您刪除第三方的AlivcFFmpeg,保留阿里雲iOS播放器SDK的AlivcFFmpeg引用,但由此可能造成第三方播放器無法正常使用等的問題請您知悉。

sandBox 報錯

  • 問題如下:

    截屏2024-12-06 16

  • 解決方案如下:

    將 UserSetting 中的 User Script SandBoxing 設定為 NO。

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

短視頻整合

如果您需要同時整合iOS端播放器SDK和短視頻SDK至您的專案中,建議您使用iOS端一體化SDK進行整合。否則,可能會出現類重複的問題,從而導致編譯失敗。

更多關於播放器使用過程中出現的問題及解決方案,請參見播放器常見問題匯總

功能使用文檔

基礎功能

進階功能