美顏特效SDK是由阿里視頻雲團隊提供的美顏特效功能,支援畫面美化、人像美顏、摳像製作、貼紙美妝、動作識別、美體、美髮、AR隔空寫字等各種個人化定製服務,適用於ApsaraVideo for Live、視頻會議、短視頻製作等情境。本文為您介紹Android端美顏特效SDK的整合操作,用於實現美顏特效功能。
前提條件
開發前的環境要求如下表所示。
類別 | 說明 |
系統版本 | 支援Android 4.3及以上版本。 |
Java版本 | 支援Java 1.7及以上版本。 |
API LEVEL | 支援Android SDK / API level 18及以上版本。 |
Android Studio版本 | 支援Android Studio 2.3以上版本,下載Android Studio。 |
整合指引
Maven方式整合(推薦)
在專案級build.gradle專案檔中添加阿里雲Maven倉庫。
allprojects { repositories { google() jcenter() maven { url "https://maven.aliyun.com/repository/releases" } } }在相應Android端SDK包的應用級build.gradle專案檔下,加入美顏特效SDK依賴項。
// Queen-sdk版本 implementation "com.aliyun.maliang.android:queen:6.8.1-official-pro" // Queen-menu組件版本(非必需) implementation "com.aliyun.maliang.android:queen_menu:6.8.1-official-pro-tiny" // 菜單資源線上下載 implementation "com.aliyun.maliang.android:queen_menu:6.8.1-official-pro" // 菜單資源打包在本地,包體會較大
因美顏特效庫可能與RTC等阿里雲SDK存在內部底層庫重複的問題,導致打包可能出現衝突。當出現衝突時,請在您的主工程打包build.gradle檔案中增加如下packagingOptions配置項,以便排除重複庫。若沒有衝突,則不需要增加此處理。
android {
...
compileSdkVersion ...
...
packagingOptions {
pickFirst '**/libMNN.so' (若存在libMNN.so衝突時,則增加該行處理,否則不需要增加)
pickFirst '**/libMNN_CL.so' (若存在libMNN_CL.so衝突時,則增加該行處理,否則不需要增加)
pickFirst '**/libc++_shared.so'(若存在libc++_shared.so衝突時,則增加該行處理,否則不需要增加)
}
...
}手動方式整合
下載並解壓美顏特效SDK。
將解壓SDK獲得的.aar檔案複製到工程的libs目錄中。
通過gradle添加AAR包依賴。
dependencies { implementation fileTree(include: ['*.aar'], dir: 'libs') }在dependencies代碼塊中,添加如下依賴
dependencies { implementation files('libs/alivc-livepusher-lib-release.aar') }最後單擊Sync Now按鈕,編譯工程。
配置應用許可權
請提前在 AndroidManifest.xml 中配置App的許可權,美顏特效SDK一般需要以下許可權:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />Android 6.0以上系統需要做動態許可權請求。程式碼範例如下:
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
== PackageManager.PERMISSION_GRANTED) {
//已經擁有該許可權
//...
} else {
//尚未擁有該許可權,去進行申請
//PERMISSION_REQUEST_CODE 是代表申請該許可權的申請碼,填寫任一數字就可以了
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, PERMISSION_REQUEST_CODE);
}配置License
請提前擷取License,擷取方式請參見擷取美顏特效SDK License。擷取後參考以下步驟將LicenseKey和LicenseFile(認證檔案)配置到工程中。
當您同時整合ApsaraVideo for Live美顏特效SDK和ApsaraVideo for VOD短視頻SDK時,兩者的LicenseKey和LicenseFile(認證檔案)是相同的,只需配置一次即可(注意認證檔案需使用最新的一份)。
如果您購買的SDK版本發生變更或需要續期(SDK到期),需要更新認證檔案。更新步驟如下:
重新擷取License,操作請參見擷取美顏特效SDK License發送郵件擷取最新認證檔案。
擷取最新認證檔案後,執行本文中配置License步驟更新認證檔案。
將認證檔案匯入到工程的assets中,然後在AndroidManifest.xml的application節點下添加兩個meta-data。樣本如下:
com.aliyun.alivc_license.licensekey為中繼資料項名字,固定取值。
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<meta-data
android:name="com.aliyun.alivc_license.licensekey"
android:value="Your LicenseKey"/> //中繼資料項指定值,請填入您郵件擷取到的LicenseKey
<meta-data
android:name="com.aliyun.alivc_license.licensefile"
android:value="Your LicenseFile Path"/> //中繼資料項指定值,請填入認證檔案在工程中相對assets的路徑,例如alivc_license/AliVideoCert.crt
……
</application>參考資料
專案 | 連結 |
Sample樣本工程 | 樣本工程檔案中,包含完整接入流程代碼,assets目錄下包含Demo所有圖片資源。 |
快速接入指引 | 快速接入包用於提升美顏特效SDK的接入效率。樣本工程內包含詳細步驟文字說明,同時提供常見接入問題的調試能力和方法。 |
常見SDK廠家接入示範,供開發人員參考。 |