本文主要介紹短視頻SDK在iOS端的使用問題。

SDK集成

導入短視頻SDK時,控制臺提示category方法未找到,該如何解決?

在工程target中選擇Build Setting > other linker flags,添加-ObjC

Debug包和Release包有什么區別?

Debug包包含模擬器和真機版本,可以保證模擬器編譯通過,本地調試時推薦使用Debug包;Release包只包含真機版本,在提交App Store時必須使用Release包,因為Apple要求動態庫提交不能包含模擬器版本。

導入短視頻SDK后運行crash,提示image not found,該如何解決?

短視頻SDK使用了動態庫,導入動態庫需要在Embedded Binaries中添加對應的framework,詳細操作請參考集成SDK

短視頻SDK支持bitcode嗎?

短視頻SDK不支持bitcode,需要在設置中把Enable Bitcode設為NO。打包如果出現failed to verify bitcode錯誤,需要取消勾選rebuild for bitcode選項。

提示[NSDictionary oss_dictionaryWithXMLData:]: unrecognized selector sent to class,是什么原因?

未導入上傳SDK,短視頻SDK需要依賴上傳SDK的AliyunOSSiOS.framework,詳細操作請參見集成SDK

視頻錄制

普通錄制完成后,獲取不到視頻,該如何解決?

需要在錄制完成回調函數- (void)recorderDidFinishRecording;里才能獲取到視頻。

如何實現橫屏錄制?

錄制時候設置cameraRotate角度值,錄制的視頻方向會以第一段視頻的角度值為準。

錄制過程中更換音樂,沒有生效,是什么原因?

錄制過程中不支持更換音樂。

如何實現全屏錄制方案?

錄制分辨率9:16顯示有以下兩種方案:
  • 方案一:和短視頻SDK提供的demo中一致,iphone X上下留黑邊。
  • 方案二:可以調整view布局上下撐滿,左右一部分內容不顯示。

視頻裁剪

裁剪提示1008錯誤,該如何解決?

關閉shouldOptimize選項。

裁剪提示700004錯誤,該如何解決?

輸出路徑未設置,請設置輸出路徑,可通過AliyunCropoutputPath參數設置。

如何實現沒有黑邊的裁剪?

根據原始分辨率,做一個縮放,縮放后的分辨率保證是偶數。

如何裁剪一段音樂?

裁剪參數videoSizeouptutSize都無需設置,其他操作和裁剪視頻時的參數保持一致。

視頻編輯

編輯完成后,合成crash,出現報錯提示[null length],該如何解決?

檢查水印路徑(AEPGlobalWatermarkTrack的source參數)是否設置正確。

調用音量接口出現破音,是什么原因?

音量默認值100代表原聲,大于100可能會破音,建議保證音量值設置在0~100。

濾鏡、MV等資源找不到,該如何解決?

資源拷貝到項目中需要用folder方式導入才能保證層級關系,注意在xcode中顯示的文件夾是藍色的。

導入視頻,提示operation not permit,該如何解決?

從系統相冊導入的視頻,需要調用系統接口獲取相冊訪問權限,同時保證對應的AVAseset沒有被銷毀。

加入音頻后,無法調節音量和添加、刪除音效,該如何解決?

注意加入的音頻需要為pcm、mp3等格式的音頻文件,不能為視頻文件。

視頻上傳

上傳報錯,提示沒有授權,該如何解決?

問題現象:上傳報錯,提示沒有授權。

可能原因:通過STS方式上傳時所使用的STS授權已到期。

解決方案:重新獲取STS授權后,再次上傳。獲取STS授權的流程簡單介紹如下:
  1. 使用阿里云主賬號創建用戶,給用戶授予AliyunSTSAssumeRoleAccess權限。
  2. 使用用戶創建角色,給角色授予VODFULL權限。
  3. 通過調用STS的SDK,獲取STS,參考:創建角色并進行STS臨時授權
    說明 調用STS的SDK中的AK必須是RAM用戶的AK。更多關于賬號、RAM用戶及授權的信息請參見賬號和授權
  4. 修改policy為點播的VODFULL權限。
  String policy = "{\n" +
           "    \"Version\": \"1\", \n" +                
           "    \"Statement\": [\n" +                
           "        {\n" +                
           "            \"Action\": [\n" +                
           "                \"vod:*\"\n" +                
           "            ], \n" +                
           "            \"Resource\": [\n" +                
           "                \"*\" \n" +                
           "            ], \n" +                
           "            \"Effect\": \"Allow\"\n" +                
           "        }\n" +                
           "    ]\n" +                
           “}”

上傳過程中斷網,為什么沒有失敗回調?

上傳過程中斷網,會自動重試,如果不想走重試接口,可以手動調用取消上傳的接口。

上傳后的視頻,通過服務端SDK下載的視頻格式為什么是m3u8?

轉碼配置里面,如果勾選了hls選項,則會生成m3u8格式的視頻。

上傳App Store

提交App Store審核時報錯,該如何解決?

問題現象:提示Invalid CFBundleSupportedPlatforms value錯誤。

問題原因:4.3.1和3.15.0版本的QuCore-ThirdParty會存在上述問題。QuCore-ThirdParty中info.plist的CFBundleSupportedPlatforms支持的平臺為iPhoneSimulator。

解決方案:
  • 方法一:將info.plist中CFBundleSupportedPlatforms下支持的平臺值改為iPhoneOS。
  • 方法二:使用其他QuCore-ThirdParty的版本,推薦版本如下表所示。
    QuCore-ThirdParty版本 短視頻SDK版本
    ≥ 4.3.2(推薦) ≥ v3.26.0
    4.3.1(不推薦) v3.26.0 ~ v3.29.0
    4.3.0 v3.24.0 ~ v3.25.1
    3.15.0 < v3.24.0