本文提供快速整合iOS播放器SDK的指引。
環境要求
系統版本:支援iOS 8.0及以上版本。
開發工具:建議使用Xcode,本文操作步驟基於Xcode開發。下載地址:Xcode。
使用限制:iOS播放器SDK不支援模擬器,整合完成後需要真機運行。
前提條件
注意事項
在進行打包時,dSYM檔案用於crash符號表解析。
使用iOS播放器SDK時,AlivcFFmpeg和AliyunPlayer都是必需的,缺一不可。播放器標頭檔位於AliyunPlayer。
如需同時整合播放器SDK和短視頻SDK,則需要關注短視頻SDK、播放器SDK及AlivcFFmpeg的版本依賴關係,否則會導致短視頻或播放器的功能使用失敗,詳細資料,請參見AlivcFFmpeg版本依賴。
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.10.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。
步驟三:開啟日誌(可選)
開啟日誌能夠協助快速定位並排查問題,還能為效能最佳化和使用者體驗提升提供資料支援,可根據實際業務情境選擇是否設定。日誌擷取請參考擷取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進行整合。否則,可能會出現類重複的問題,從而導致編譯失敗。
更多關於播放器使用過程中出現的問題及解決方案,請參見播放器常見問題匯總。