前提条件
初始化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中。
- 把资源包上传到您的云空间上(例如OSS中)。
- 在APP启动时进行资源包判定,如果资源包不存在则进行下载,将资源包下载到本地。
- 本地已存在资源包或资源包下载完成后,设置短视频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);