音視頻終端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;