本文為您介紹Android短視頻SDK的Maven整合方式。
前提條件
開發前的環境要求如下表所示。
類別 | 說明 |
系統版本 | 支援Android4.3及以上版本。 |
Java版本 | 支援Java1.7及以上版本。 |
API LEVEL | 支援ANDROID SDK API LEVEL 18及以上版本。 |
Android Studio版本 | 支援Android Studio 2.3以上版本,下載Android Studio。 |
Maven方式整合(推薦)
添加阿里雲Maven倉庫。
在專案級的build.gradle檔案中添加Maven倉庫地址。
allprojects { repositories { maven { url 'https://maven.aliyun.com/nexus/content/repositories/releases/' } } }在app工程目錄下的build.gradle檔案中加入對應依賴項,如下表所示。
重要如果使用短視頻SDK 3.24.0及以上版本,請務必使用FFmpeg 4.3.0及以上版本。
V7.0.0及以上版本整合
dependencies{ implementation 'com.aliyun.aio:AliVCSDK_ShortVideo:7.9.1'//短視頻SDK必須依賴。 implementation 'com.google.code.gson:gson:2.8.0'//第三方依賴庫。 implementation 'com.aliyun.video.android:upload:1.6.7' //上傳庫,如不需要上傳可不依賴。 implementation 'com.aliyun.dpa:oss-android-sdk:+'//短視頻上傳需要依賴上傳SDK及OSS,如果不需要上傳可不依賴。 }V6.21.0及以下版本整合
dependencies{ implementation 'com.aliyun.video.android:svideopro:6.21.0'//專業版整合 implementation 'com.aliyun.video.android:svideostandard:6.21.0'//標準版整合 implementation 'com.aliyun.video.android:svideosnap:6.1.0'//基礎版整合 //其他依賴 implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.6' implementation 'com.google.code.gson:gson:2.8.0' //第三方依賴庫。 }
目前短視頻SDK僅包含armeabi-v7a和arm64-v8a指令集的SDK,如需要armeabi的指令集的so建議直接通過armeabi-v7a的so拷貝至armeabi以此相容。需要說明的是考慮到Android的發展和短視頻SDK僅支援4.3以上,所以ARMv5、ARMv6裝置相容意義不大。
配置許可權
<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" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />Android 6.0以上系統需要做動態許可權請求。
配置License
擷取到License後,需要按以下操作配置License檔案。License的擷取及詳細資料請參見擷取短視頻SDK License。
在AndroidManifest.xml檔案中添加兩個meta-data,第一個key的name為com.aliyun.alivc_license.licensekey(全小寫),value為LicenseKey的值;第二個key的name為com.aliyun.alivc_license.licensefile(全小寫),value為內建認證檔案的路徑。範例程式碼如下所示:
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<meta-data
android:name="com.aliyun.alivc_license.licensekey"
android:value="yourLicenseKey"/> //請輸入您的LicenseKey的值
<meta-data
android:name="com.aliyun.alivc_license.licensefile"
android:value="yourLicenseFile"/> //請輸入您的內建認證檔案的路徑,取值樣本:assets/alivc_license/AliVideoCert.crt
……
</application>混淆配置
可以在proguard-rules.pro檔案中進行混淆配置。範例程式碼如下所示:
######################短視頻混淆配置#########################
-keep class com.aliyun.**{*;}
-keep class com.duanqu.**{*;}
-keep class com.qu.**{*;}
-keep class com.alibaba.**{*;}
-keep class component.alivc.**{*;}
-keep class com.alivc.**{*;}
-keep class org.webrtc.**{*;}
-keep class org.ugsv.**{*;}後續步驟
播放器整合
如果您需要同時整合Android端短視頻SDK和播放器SDK至您的專案中,建議您使用Android端一體化SDK進行整合。否則,可能會出現類重複的問題,從而導致編譯失敗。