全部產品
Search
文件中心

ApsaraVideo VOD:初始化SDK

更新時間:Jul 13, 2024

前提條件

初始化SDK前需要完成以下操作:
  • 擷取並開通短視頻SDK License,詳細內容請參見擷取短視頻SDK License
  • 整合短視頻SDK。從3.29.0版本開始,註冊SDK之前,需要先配置License,詳細內容請參見整合SDK

引入標頭檔

SDK標頭檔主要說明使用短視頻SDK時所需要遵循的介面使用規範,使用短視頻SDK前需要先引入標頭檔。
#import <AliyunVideoSDKPro/AliyunVideoSDKPro.h>

註冊SDK

從3.29.0版本開始,短視頻SDK升級了License服務,在App啟動後必須進行註冊,否則無法使用短視頻SDK的功能。具體如下:

// ≥ 3.30.0版本:
NSError *error = [AliyunVideoSDKInfo registerSDK]; // 返回error為nil表示註冊成功。
// 因為註冊失敗基本屬於接入錯誤,所以建議直接加上Assert就可以在接入調試時顯示錯誤和修複建議。
NSAssert2(error == nil, @"註冊SDK失敗!%@;%@", error.localizedDescription, error.localizedRecoverySuggestion);

// 3.29.0版本:
// 請把擷取到的LicenseFile改名為license.crt,加到您的App工程裡,通過以下方式擷取LicenseFile路徑。
NSString *licenseFilePath = [NSBundle.mainBundle pathForResource:@"license" ofType:@"crt"];
// 使用擷取到的LicenseKey和LicenseFilePath註冊SDK。
[AliyunVideoSDKInfo registerSDKWithLicenseKey:LicenseKey licenseFile:licenseFilePath];
重要 註冊成功代表License已經注入到SDK內部,但是不代表鑒權結果成功。
您可以通過代碼查詢當前License狀態資訊。
AliyunVideoLicense *license = AliyunVideoLicenseManager.CurrentLicense;
在您使用具體功能或增值服務時,SDK內部會發生鑒權,如果鑒權失敗會在對應的介面返回結果。您也可以在統一的地方監聽鑒權結果。
// ≥ 3.30.0版本
AliyunVideoLicenseManager.EventDelegate = self; // 具體請參考AliyunVideoLicenseEventDelegate協議說明
您可以通過代碼主動查詢鑒權結果。
AliyunVideoLicenseResultCode code = [AliyunVideoLicenseManager check];       
如果您續約了或者購買了增值服務也可以主動更新License(預設每15分鐘檢查更新一次)。
[AliyunVideoLicenseManager Refresh:^(AliyunVideoLicenseRefreshCode code){
    // 更新結果: code
}];

設定資源套件引入路徑

通過pod方式的最少依賴方式整合短視頻SDK時,如果需要引入資源套件AliyunVideoSDKPro.bundle,且考慮到包大小問題,不想在工程中引入,那麼可以通過以下方法,實現在APP運行時自動下載資源套件,下載完成後引入到短視頻SDK中。

  1. 把資源套件上傳到您的雲空間上(例如OSS中)。
  2. 在APP啟動時進行資源套件判定,如果資源套件不存在則進行下載,將資源套件下載到本地。
  3. 本地已存在資源套件或資源套件下載完成後,設定短視頻SDK引入資源套件的路徑,方法如下:
    [AliyunVideoSDKInfo setSDKBundlePath:@"資源套件的本機存放區路徑"];

日誌輸出

預設情況下,短視頻SDK僅輸出警告和出錯日誌(AlivcLogWarn)。使用者可以設定日誌輸出層級以列印更多日誌作為故障排查參考。
// 記錄層級定義如下:
typedef NS_ENUM(NSInteger, AlivcLogLevel)
{
    AlivcLogClose = 1,
    AlivcLogVerbose,
    AlivcLogDebug,
    AlivcLogInfo,
    AlivcLogWarn,
    AlivcLogError,
    AlivcLogFatal
};
// 設定日誌輸出層級
[AliyunVideoSDKInfo setLogLevel:AlivcLogDebug];
                

版本資訊

您可以通過以下方式列印版本資訊,以確保引入的SDK版本正確或協助排查SDK使用過程中的問題。
[AliyunVideoSDKInfo printSDKInfo];
您還可以列印所需要的資訊。
NSString *version = [AliyunVideoSDKInfo version]; // 版本號碼
NSString *module = [AliyunVideoSDKInfo module];   // 版本類型
int moduleCode =[AliyunVideoSDKInfo versionCode]; // 版本類型代碼
NSString *buildId =[AliyunVideoSDKInfo videoSDKBuildId]; // 版本打包ID
NSLog(@"\n==============\nVERSION:%@\nBUILD_ID:%@\nMODULE:%@\nMODULE_CODE:%d\n==============", version, buildId, module, moduleCode);