一、配置方法
调用 SDK 的相关接口前,你需要调用如下方法配置 License:
·iOS
建议在 [AppDelegate application:didFinishLaunchingWithOptions:] 中添加:
– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSString * const licenseURL = @"<获取到的licenseUrl>"; NSString * const licenseKey = @"<获取到的key>"; // TXLiveBase 位于 "TXLiveBase.h" 头文件中 [TXLiveBase setLicence:licenseURL key:licenseKey]; [TXLiveBase sharedInstance].delegate = self; NSLog(@"SDK Version = %@", [TXLiveBase getSDKVersionStr]); return YES;}#pragma mark – TXLiveBaseDelegate- (void)onLicenceLoaded:(int)result Reason:(NSString *)reason { NSLog(@"onLicenceLoaded: result:%d reason:%@", result, reason);}@end
·Android
建议在 application 中添加:
public class MApplication extends Application {
public void onCreate() {
super.onCreate();
String licenseURL = ""; // 获取到的 license url
String licenseKey = ""; // 获取到的 license key
TXLiveBase.getInstance().setLicence(appContext, licenseURL, licenseKey);
TXLiveBase.setListener(new TXLiveBaseListener() {
@Override
public void onLicenceLoaded(int result, String reason) {
Log.i(TAG, "onLicenceLoaded: result:" + result + ", reason:" + reason);
}
});
}
}
·HarmonyOS
HarmonyOS 端播放器 License 配置指引请参考 SDK 集成指引-集成播放器 License。
注意:1. License 是强线上检验逻辑,应用首次启动后调用 TXLiveBase#setLicence 时,需确保网络可用。 在 App 首次启动时,可能还没有授权联网权限,则需要等授予联网权限后,再次调用 TXLiveBase#setLicence 。
注意:2. 监听 TXLiveBase#setLicence 加载结果:onLicenceLoaded 接口,如果失败要根据实际情况做对应重试及引导,如果多次失败后,可以限频,并业务辅以产品弹窗等引导,让用户检查网络情况。
注意:3. TXLiveBase#setLicence 可以多次调用,建议在进入 App 主界时调用 TXLiveBase#setLicence, 确保加载成功。
注意:4. 对于多进程的 App, 确保每个使用播放器的进程启动时,都调用了 TXLiveBase#setLicence。例如: Android 端使用独立进程播放视频的 App, 后台播放时进程被系统 kill 掉重启时,也要调用 TXLiveBase#setLicence。
注意:5. 对于首次播放视频,来不及联网校验 License 的场景,播放器 SDK 对首次启动的播放校验逻辑进行了优化,可以通过 TXPlayerGlobalSetting#setLicenseFlexibleValid 接口传入 true ,开启前 2 次播放校验 License 默认校验通过。iOS & Android 双端接口一致,11.6 版本开始支持。
二、查看方法
License 设置成功后(需稍等一段时间,具体时间长短依据网络情况而定),你可以通过调用如下方法查看 License 信息:
·iOS
NSLog(@"%@", [TXLiveBase getLicenceInfo]);
·Android
TXLiveBase.getInstance().getLicenceInfo();