You need to enable JavaScript to run this app.
视频点播

视频点播

复制全文
进阶功能
License 校验
复制全文
License 校验

视频点播通过 License 管理播放器 SDK 及增值服务的有效期和权限。本文为您介绍使用 Android 播放器 SDK 时如何获取和配置 License。

获取 License

您需要在视频点播控制台购买 License、绑定 License 与应用以及下载 License 文件,具体操作请见应用管理

配置 License

参考以下示例代码在初始化播放器 SDK 时配置 License:

// 初始化 SDK,传入 License 文件地址
String vodLicense = "assets:///license/vod.lic";
Env.init(new Config.Builder()
        .setLicenseUri(vodLicense)
        // ... 省略其余初始化选项,可参考快速开始文档
        .build();

说明

具体参数设置,请见初始化播放器 SDK

如果您同时集成播放器 SDK 和视频直播 SDK,这两个 SDK 都需要设置 License。下方的示例代码展示了如何同时设置点播和直播 License。

// 1. 初始化 TTSDK, 传入点播 License 地址
String vodLicense = "assets:///license/vod.lic";
Env.init(new Config.Builder()
        // 传入点播 License 地址
        .setLicenseUri(vodLicense)
        // ... 省略其余初始化选项,可参考 “快速开始” 文档
        .build();

// 2. 添加直播 License 地址
String liveLicense = "assets:///license/live.lic";
LicenseManager.getInstance().addLicense(liveLicense, null);

判断 License 状态

初始化播放器 SDK 后,您可以根据状态码来判断当前设置的 License 状态。Debug 状态下,你可以通过关键词 LICENSE_STATUS 来进行过滤识别 License 相关的日志。如果 License 通过了校验,控制台会输出日志 C.LicenseStatus.LICENSE_STATUS_OK == 1。日志中的 1 对应状态码。如果输出结果不是 1,就意味着 License 校验未通过,此时可以参考状态码来判断具体失败的原因。状态码说明如下表所示:

状态码

SDK 中常量定义

说明

0

C.LicenseStatus.LICENSE_STATUS_INVALID

  • License 文件非法,或被篡改。
  • 未添加 License,或路径设置错误。

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

  1. License 中不包含该增值服务
  2. 增值服务名错误。

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

正式 License 支持续期和变更,具体操作请见续期或变更 License。成功续期或变更后,您将获得新的 License 文件。此文件会有所变动,但 UrlLicenseID 仍然保持原样。你需要及时在 App 中更新此文件,并发布新的 App 版本。

处理 License 校验失败

校验失败的表现

License 校验失败分为两种表现。

  • 播放器 SDK 校验失败
  • 高级功能、增值服务校验失败

校验失败时,视频无法起播,并会从抛出onError返回错误信息。示例代码如下:

ttVideoEngine.setVideoEngineCallback(new VideoEngineCallback() {
    @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
    -310002

    Error.DashCheckFailed
    Error.BashCheckFailed

    DASH 高级功能校验失败

    -310003

    Error.h266CheckFailed

    H.266 增值服务校验失败

校验失败的处理方式

在不同的场景中,校验失败的处理方式有所不同。

场景一:集成阶段

在集成 SDK 阶段,出现播放出错一般为使用问题,您可以根据播放器抛错对照错误码表进行定位处理。

场景二:线上 License 过期

如果 License 过期,您需要尽快续期 License,具体操作请参见续期或变更 License

说明

建议您至少提前一个月续期/变更 License。

最近更新时间:2025.11.12 17:40:49
这个页面对您有帮助吗?
有用
有用
无用
无用