音视频终端SDK License通过与应用标识一一绑定,以实现对该应用调用SDK进行授权。获取SDK License后,需要在对应的直播推流SDK、短视频SDK、播放器SDK、美颜特效SDK中接入License以完成SDK的授权流程。通过阅读本文,您可以了解如何在Web、Android和iOS端接入License。
前提条件
已申请License,并获取License文件和License Key。具体操作,请参见申请License。
鉴权流程
如上图所示,音视频终端SDK的License鉴权流程依赖LicenseKey与License文件,配置要求如下:
项目 | 是否必须 | 说明 | |||||
LicenseKey | 是 | 用于请求更新License文件。 SDK初始化时会检查更新证书文件,在程序运行时也会每隔15分钟检查更新证书文件。 | |||||
License文件 | 否,建议配置 | 用于当未能从服务端成功请求到证书时鉴权使用的证书文件,例如由于网络问题导致无法下载证书等极端场景。 证书文件内容包含了开通的权限以及有效期。因此,为了在弱网络环境下提高鉴权通过率,建议在权限发生变化时主动更新内置证书文件。 说明
|
如有特殊原因不希望内置License文件时,不填写LicenseFile相关配置即可(具体参考下文)。
不配置内置证书文件意味着鉴权依据全部来源于服务端,这样可能会因为网络不稳定而导致鉴权不稳定;也可能导致用户首次使用应用需要等待证书下载完成才能通过鉴权(耗时取决于用户当时的网络情况)。
播放器SDK服务环境
为了满足全球化合规要求,阿里云播放器SDK(6.14.0及以上版本)为您提供了多样化的环境选择,确保服务的本地化和合规性。根据您所选择的服务环境,播放器SDK的License鉴权以及播放器SDK所涉及的播放质量服务数据将由相应的服务中心提供支持。您可以根据自己的需求选择以下服务环境。
请注意,目前阿里云国际站用户仅支持使用国际站环境(新加坡节点),您所使用的播放器SDK(6.14.0及以上)默认设置为全球环境配置。为了确保License鉴权流程的顺利进行,您需要按照以下步骤将播放器SDK配置更新为国际站环境。
环境 | 说明 | 使用建议 |
全球环境(默认) | 通过阿里云中国上海节点提供服务,确保全球用户的接入和授权需求得到满足。 | 适用于中国内地业务。 说明 目前阿里云国际站用户仅支持使用国际站环境(新加坡节点),如需使用全球环境(中国上海节点),请联系我们获取技术支持。 |
国际站环境 | 专为国际站用户设计,通过新加坡节点提供服务,以满足特定区域的合规性和性能要求。 | 适用于中国香港、中国澳门、中国台湾及海外业务。 |
Web端接入License
从控制台获取License Key。
在初始化播放器时传入license字段,包含注册的域名和License Key:
var player = new Aliplayer({ license: { domain: "example.com", // 申请 License 时填写的域名 key: "example-key" // 申请成功后,在控制台可以看到 License Key } });
初始化播放器后,如果没有相关错误提示,则表示License配置成功。
说明请确保播放器所在页面的域名和申请License时填写的域名保持一致,或者是填写域名的子域名,否则 License校验将会不通过(localhost 不会校验)。
Android端接入License
配置License。
(推荐)将证书文件拷贝到Android Studio项目中的assets目录下。
说明您也可以将证书文件复制到设备中的其他位置,但要保证下一步中
com.aliyun.alivc_license.licensefile
(全球环境)或com.aliyun.alivc_license.licensefile_SEA
(国际站环境)对应的value的值和License的路径保持一致。在AndroidManifest.xml文件中添加<meta-data>节点。
重要若配置License后校验失败,您可以检查<meta-data>节点是否处于<application>元素下面,且<meta-data>的name是否正确。若未能解决问题,您可以参考License相关常见问题进行排查。
针对国际站用户,若需使用播放器SDK,且播放器SDK为6.14.0及以上版本,请务必配置国际站环境License;若不使用播放器SDK,可以仅配置全球环境License。
您可以同时接入2套License(1套全球环境License,1套国际站环境License),后续在App每次启动后,通过配置播放器SDK的服务环境,来指定播放器的运行环境。播放器运行过程中,不支持切换环境。
// 全球环境配置License(默认配置) <meta-data android:name="com.aliyun.alivc_license.licensekey" android:value="foIVziMaUHaRqgDyhf6b6eb8fcf014af39535d0720a32****"/> <!-- TODO:请设置您的 LicenseKey值--> <meta-data android:name="com.aliyun.alivc_license.licensefile" android:value="assets/cert/release.crt"/> <!-- TODO:请设置您的 LicenseFile文件路径--> // 国际站环境配置License,手动在末尾添加_SEA <meta-data android:name="com.aliyun.alivc_license.licensekey_SEA" android:value="f6b6foIVziMaUHaRqgDyheb8fcf014af39535d0a32720****"/> <!-- TODO:请设置您的 LicenseKey值--> <meta-data android:name="com.aliyun.alivc_license.licensefile_SEA" android:value="assets/cert/release.crt"/> <!-- TODO:请设置您的 LicenseFile文件路径-->
配置播放器SDK的服务环境(使用国际站环境必配)。
播放器SDK自6.14.0版本开始支持选择服务环境,6.14.0及以上版本的播放器SDK默认为全球环境配置,如需使用国际站环境(目前国际站用户仅支持使用国际站环境),则须在每次App启动后,按照下述方法将播放器SDK配置更新为国际站环境,否则播放器SDK的License会鉴权失败;其他版本及SDK的使用场景下,可忽略此步骤。
// 使用国际站环境时,请确保在调用任何播放器API之前,已调用下述接口更新默认配置为国际站环境,以确保后续所有业务都是在国际站环境下运行 // 通过AlivcBase统一接口,设置国际站环境,运行期间不支持修改 AlivcBase.getEnvironmentManager().setGlobalEnvironment(AlivcEnv.GlobalEnv.ENV_SEA);
iOS端接入License
配置License。
将License文件复制到Xcode项目中指定目录,并在Target Membership中选中当前项目。
打开Info.plist,分别修改AlivcLicenseKey、AlivcLicenseFile(全球环境)或AlivcLicenseKey_SEA、AlivcLicenseFile_SEA(国际站环境)为申请License时获取的License Key和License文件路径。
重要针对国际站用户,若需使用播放器SDK,且播放器SDK为6.14.0及以上版本,请务必配置国际站环境License;若不使用播放器SDK,可以仅配置全球环境License。
您可以同时接入2套License(1套全球环境License,1套国际站环境License),后续在每次App启动后,通过配置播放器的服务环境,来指定播放器的运行环境。播放器运行过程中,不支持切换环境。
//全球环境License配置(默认配置) <key>AlivcLicenseFile</key> <string>XXX</string> <key>AlivcLicenseKey</key> <string>foIVziMaUHaRqgDyhf6b6eb8fcf014af39535d0720a32****</string> // 国际站环境License配置,手动在末尾添加_SEA <key>AlivcLicenseFile_SEA</key> <string>XXX</string> <key>AlivcLicenseKey_SEA</key> <string>f6b6efoIVziMaUHaRqgDyhb8fcf014af39535d0a32072****</string>
配置播放器SDK的服务环境。
播放器SDK自6.14.0版本开始支持选择服务环境,6.14.0及以上版本的播放器SDK默认为全球环境配置。如需使用国际站环境(目前国际站用户仅支持使用国际站环境),则须在每次App启动后,按照下述方法将播放器SDK配置更新为国际站环境,否则播放器SDK的License会鉴权失败;其他版本及SDK的使用场景下,可忽略此步骤。
// 使用国际站环境时,请确保在调用任何播放器API之前,已调用下述接口更新默认配置为国际站环境,以确保后续所有业务都是在国际站环境下运行 // 通过AlivcBase统一接口,设置国际站环境,运行期间不支持修改 AlivcBase.EnvironmentManager.globalEnvironment = ENV_SEA;