本文为您介绍 Android 点播 SDK 的 License 的使用说明。
通过点播控制台获取,具体操作详情请见:应用管理。
点播 SDK License 设置
具体设置请见:快速开始>初始化点播 SDK。
// 初始化 TTSDK, 传入点播 License 地址 String vodLicense = "assets:///license/vod.lic"; Env.init(new Config.Builder() .setLicenseUri(vodLicense) // ... 省略其余初始化选项,可参考 “快速开始” 文档 .build();
点播和直播 SDK 同时集成 License 设置
// 1. 初始化 TTSDK, 传入点播 License 地址 String vodLicense = "assets:///license/vod.lic"; Env.init(new Config.Builder() .setLicenseUri(vodLicense) // ... 省略其余初始化选项,可参考 “快速开始” 文档 .build(); // 2. 添加直播 License 地址 String liveLicense = "assets:///license/live.lic"; LicenseManager.getInstance().addLicense(assetsLicenseUri, null);
正式版 License 支持续期/增加更多增值服务。您可在控制台申请续期/变更。
注意
点播 SDK 初始化后,支持获取点播 SDK 和增值服务的鉴权状态。可以根据状态码来判断 License 是否可用,是否过期。
状态码 | SDK 中常量定义 | 说明 |
---|---|---|
0 | C.LicenseStatus.LICENSE_STATUS_INVALID |
|
1 | C.LicenseStatus.LICENSE_STATUS_OK | License 鉴权通过。 |
2 | C.LicenseStatus.LICENSE_STATUS_EXPIRED | License 已过期。 |
401 | C.LicenseStatus.LICENSE_STATUS_ERROR_PARAM_PACKAGE_NAME | 应用包名与购买 License 填写的包名不符。 |
402 | C.LicenseStatus.LICENSE_STATUS_ERROR_PARAM_FEATURE_NAME |
|
403 | C.LicenseStatus.LICENSE_STATUS_ERROR_PARAM_MODULE_NAME | 点播 SDK 枚举传递错误。 |
代码示例如下所示。
import com.pandora.ttlicense2.LicenseManager; import com.pandora.ttlicense2.C; // 查询点播 SDK 鉴权状态,1 表示鉴权通过,更多状态码见上表 int vodLicenseResult = LicenseManager.getInstance().checkSDKAuth(C.SDK.SDK_VOD_PLAY); // 查询点播 H265 增值服务 License 的鉴权状态,1 表示鉴权通过,更多状态码见上表 int featureH265Result = LicenseManager.getInstance().checkFeatureAuth(C.SDK.SDK_VOD_PLAY,C.Feature.FEATURE_BVC1);
增值服务的详细说明如下所示。
增值服务 | SDK 中常量定义 |
---|---|
H.265 | C.Feature.FEATURE_BVC1 |
H.266 | C.Feature.FEATURE_h266 |
自适应码率 | C.Feature.FEATURE_ABR |
蒙版弹幕+外挂字幕 | C.Feature.FEATURE_SUBTITLE_MASK |
客户端超分 | C.Feature.FEATURE_SUPER_RESOLUTION |
License 鉴权失败分为两种表现。
点播 SDK 鉴权失败:鉴权失败时,视频无法启播,并会从抛出onError
返回错误信息。代码示例如下所示。
ttVideoEngine.setListener(new VideoEngineListener() { // ... @Override public void onError(Error error) { Log.v("VideoPlay", "onError " + error); if (error.code == Error.LicenceFailed) { // license 鉴权失败 // internalCode 为细分错误码 switch (error.internalCode) { case Error.h265CheckFailed: // H.265 增值服务鉴权失败 break; case Error.h266CheckFailed: // H.266 增值服务鉴权失败 break; case Error.DashCheckFailed: case Error.BashCheckFailed: // DASH 增值服务鉴权失败 break; default: // 点播 SDK 鉴权失败 break; } } else { // 更多错误码参考文档:https://www.volcengine.com/docs/4/66441/ } } }
如果开启了 TTVideoEngineLog,logcat 会输出。
<TTVideoEngine>videoEngine failed:domain:kTTVideoErrorDomainVideoOwnPlayer, code:-30001, internalCode:0, description:version:null,10,Mi 10 rom memory totle:114930200576,availe:72815374336 ram memory totle:7806540,availe:2883304 sdcard totle:114930200576,availe:72815374336 error:play errorauth failed,authResult:0&&time:1616475725000
code:-30001 为鉴权失败错误码,auth failed 为错误信息。
internalCode:0 为细分错误码。
authResult:0 表示 License 模块的鉴权结果返回 0。通过查询 License 检测 部分提供的表格我们可以知道 0 表示 License 文件非法/未设置/路径设置错误。
error.internalCode 细分错误码的详细说明如下所示。
错误码 | SDK 中常量定义 | 说明 |
---|---|---|
0 | - | 点播 SDK 播放鉴权失败 |
-310000 | Error.h265CheckFailed | H.265 增值服务鉴权失败 |
-310001 | Error.DashCheckFailed | DASH 高级功能鉴权失败 |
-310003 | Error.h266CheckFailed | H.266 增值服务鉴权失败 |
针对鉴权失败的异常处理,有两种场景: