推流SDK升级到4.4.2及以后版本,需要使用SDK License进行授权。本文为您介绍推流SDK License的获取以及集成方式。

注意事项

  • 推流SDK 4.4.2以前的版本暂时无需License服务。当升级到4.4.2及以后版本,需要经License授权后才可以正常推流。
  • 一体化License可为同一个阿里云账号下的所有APP提供视频云SDK的接入授权。推流SDK从4.4.2版本开始,接入一体化License服务。
  • 当您同时申请视频直播推流SDK License和视频云一体化License其他服务时(例如美颜特效SDK License),LicenseKey和LicenseFile(证书文件)是相同的,只需配置一次即可(注意证书文件需使用最新的一份)。
    说明

    如果您之前仅申请了视频云一体化License服务中的其他License(例如美颜特效SDK License),后续使用推流SDK时,可以将您需要的SDK权限(即应用信息)发送至指定邮箱videosdk@service.aliyun.com,订正License的授权范围。否则,推流SDK会校验失败。

    仅订正License的授权范围,LicenseKey和LicenseFile不变,您不需要重新配置License,但在使用推流功能前必须注册推流SDK。

申请License授权

视频直播服务提供直播推流SDK、美颜特效SDK、播放器SDK的License统一授权管理,您可以在视频直播控制台创建应用并绑定License授权,授权成功后,您可以获取到License和License Key文件。具体操作,请参见我的授权

配置License

在视频直播控制台创建应用并绑定License授权成功后,可以获取到License和License Key文件。您需要按照以下操作配置License。

Android端配置License

  1. 将获取到的LicenseFile文件预置到assets目录下。
  2. AndroidManifest.xml中配置LicenseKey和LicenseFile,示例如下,将配置文件中的Your licenseKeyYour licenseFile.crt替换成您实际获取的值。
    <application>
    
        <!-- android:name: 元数据项名字,固定取值 -->
        <!-- android:value: 元数据项指定值,请填入您邮件获取到的LicenseKey -->
        <meta-data
            android:name="com.aliyun.alivc_license.licensekey"
            android:value="Your licenseKey" />
    
        <!-- android:name: 元数据项名字,固定取值 -->
        <!-- android:value: 元数据项指定值,请填入您邮件获取到的LicenseFile所在的assets路径 -->
        <meta-data
            android:name="com.aliyun.alivc_license.licensefile"
            android:value="assets/Your licenseFile.crt" />
    
    </application>
    重要 如配置License后校验失败,您可以检查上述<meta-data>节点是否处于<application>元素下面,且<meta-data>的name是否正确。

iOS端配置License

  1. 将获取到的License文件导入到APP工程。
  2. 在Info.plist文件中添加两个key:
    • 第一个key为AlivcLicenseKey,value为LicenseKey的值。
    • 第二个key为AlivcLicenseFile,value为内置证书文件(相对于mainBundle)的路径。
    keyvalue
    AlivcLicenseKeyLicenseKey的值,取值示例:MoCTfuQ391Z01mNqG8f8745e23c8a457a8ff8d5faedc1****
    AlivcLicenseFile内置证书文件(相对于mainBundle)的路径。

注册推流SDK

在使用推流功能前必须进行注册,否则无法使用推流SDK功能。注册SDK前,需要先完成配置License操作。

Android端注册SDK

请在较早的位置(使用推流SDK前)调用注册License接口
AlivcLiveBase.setListener(new AlivcLiveBaseListener() {
  @Override
  public void onLicenceCheck(AlivcLivePushConstants.AlivcLiveLicenseCheckResultCode result, String reason) {
    Log.e(TAG, "onLicenceCheck: " + result + ", " + reason);
  }
});
AlivcLiveBase.registerSDK();

通过AlivcLiveBase类,可以设置日志级别、设置本地日志路径、获取SDK版本等。

接入方需要调用AlivcLiveBase中的registerSDK方法,进行SDK License注册;并监控AlivcLiveBaseListener中的onLicenceCheck方法,异步接收License鉴权结果回调,确定提供的LicenseKey和LicenseFile是否校验通过。

说明 该回调仅在初始化pusher实例后触发。

iOS端注册SDK

请在较早的位置(使用推流SDK前)调用注册License接口
[AlivcLiveBase registerSDK];

通过AlivcLiveBase类,可以设置日志级别、设置本地日志路径、获取SDK版本等。

接入方需要监控License回调AlivcLiveBaseObserver中的onLicenceCheck方法,确定提供的LicenseKey和LicenseFile是否校验通过。