本文為您介紹Android短視頻SDK的Maven集成方式和手動集成方式。
前提條件
開發前的環境要求如下表所示。
類別 | 說明 |
系統版本 | 支持Android4.3及以上版本。 |
Java版本 | 支持Java1.7及以上版本。 |
API LEVEL | 支持ANDROID SDK API LEVEL 18及以上版本。 |
Android Studio版本 | 支持Android Studio 2.3以上版本,下載Android Studio。 |
背景信息
短視頻SDK分為專業版、標準版和基礎版,各版本之間存在差異。更多信息,請參見產品介紹。
集成說明
如果有同時使用短視頻SDK和播放器SDK的需求,建議您集成音視頻一體化產品MediaBox音視頻SDK,可有效解決單獨集成多款SDK時引起的依賴庫沖突問題。集成操作,請參見Android端。
如需同時單獨集成短視頻SDK和播放器SDK,您需要關注短視頻SDK、播放器SDK及AlivcFFmpeg的版本依賴關系,否則會導致短視頻或播放器的功能使用失敗,詳細信息,請參見AlivcFFmpeg版本依賴。
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及以上版本。
版式
Maven項目中依賴項
專業版
dependencies{ implementation 'com.aliyun.video.android:svideopro:6.15.0'//專業版短視頻SDK必須依賴。 implementation 'com.aliyun.video.android:core:1.2.2' //核心庫必須依賴。 //AlivcFFmpeg必須依賴,且版本需要在4.3.0及以上,在以下兩個版本中選擇一個版本進行依賴。 implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.6.0-part' //短視頻SDK專用,包size較小。 implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.6' //短視頻SDK與播放器SDK共用。兩個SDK同時接入時,請用該版本。 implementation 'com.aliyun.video.android:upload:1.6.6' //上傳庫,如不需要上傳可不依賴。 implementation 'com.google.code.gson:gson:2.8.0'//第三方依賴庫。 implementation 'com.squareup.okhttp3:okhttp:3.2.0'//第三方依賴庫。 implementation 'com.aliyun.dpa:oss-android-sdk:+'//短視頻上傳需要依賴上傳SDK及OSS,如果不需要上傳可不依賴。 }
標準版
dependencies { implementation 'com.aliyun.video.android:svideostandard:6.15.0'//標準版短視頻SDK必須依賴。 implementation 'com.aliyun.video.android:core:1.2.2' //核心庫必須依賴。 //AlivcFFmpeg必須依賴,且版本需要在4.3.0及以上,在以下兩個版本中選擇一個版本進行依賴。 implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.6.0-part' // 短視頻SDK專用,包size較小。 implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.6' //短視頻SDK與播放器SDK共用。兩個SDK同時接入時,請用該版本。 implementation 'com.aliyun.video.android:upload:1.6.6'// 上傳庫,如不需要上傳可不依賴。 implementation 'com.google.code.gson:gson:2.8.0'//第三方依賴庫。 implementation 'com.squareup.okhttp3:okhttp:3.2.0'//第三方依賴庫。 implementation 'com.aliyun.dpa:oss-android-sdk:+'//短視頻上傳需要依賴上傳SDK及OSS,如果不需要上傳可不依賴。 }
基礎版
dependencies { implementation 'com.aliyun.video.android:svideosnap:6.15.0'//基礎版短視頻SDK必須依賴。 implementation 'com.aliyun.video.android:core:1.2.2' //核心庫必須依賴。 //AlivcFFmpeg必須依賴,且版本需要在4.3.0及以上,在以下兩個版本中選擇一個版本進行依賴。 implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.6.0-part' // 短視頻SDK專用,包size較小。 implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.6' //短視頻SDK與播放器SDK共用。兩個SDK同時接入時,請用該版本。 implementation 'com.aliyun.video.android:upload:1.6.6'// 上傳庫,如不需要上傳可不依賴。 implementation 'com.google.code.gson:gson:2.8.0'//第三方依賴庫。 implementation 'com.squareup.okhttp3:okhttp:3.2.0'//第三方依賴庫。 implementation 'com.aliyun.dpa:oss-android-sdk:+'//短視頻上傳需要依賴上傳SDK及OSS,如果不需要上傳可不依賴。 }
目前短視頻SDK僅包含armeabi-v7a和arm64-v8a指令集的SDK,如需要armeabi的指令集的so建議直接通過armeabi-v7a的so拷貝至armeabi以此兼容。需要說明的是考慮到Android的發展和短視頻SDK僅支持4.3以上,所以ARMv5、ARMv6設備兼容意義不大。
手動方式集成
步驟一:導入aar
創建Module。
在Android Studio中選擇File > New > Newmodule,新建Library形式的Module。示例名:AliyunSvideoLibrary。
將下載的SDK目錄中的AliyunSdk-RCE.aar、AlivcConan-x.x.x.aar、AlivcCore.jar拷貝至新建的Module以module的方式添加到工程中。
通過gradle添加AAR和jar包依賴。
dependencies { implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs') }
在app module中添加AliyunSvideoLibrary Module的依賴。
dependencies { implementation project(":AliyunSvideoLibrary") }
步驟二:導入.so文件
將SDK解壓包中的jniLibs目錄拷貝到app module的main目錄中,并且在app module的build.gradle文件中聲明jniLibs的路徑。
示例代碼如下所示。
android { sourceSets.main { jni.srcDirs = [] jniLibs.srcDir "src/main/jniLibs" } }
SDK加載的動態鏈接庫。
在最新的版本中已經在SDK內部加載,不需要用戶手動加載。
庫文件說明如下所示。
libalivcffmpeg.so-------------SDK依賴的第三方庫(必須load) libaliresample.so-------------------音頻重采樣相關的庫(不需要可以去掉)
添加上傳依賴項。
短視頻上傳需要依賴上傳SDK及OSS,如果不需要可不添加。
implementation 'com.aliyun.video.android:upload:1.6.4' implementation 'com.google.code.gson:gson:2.8.0' implementation 'com.squareup.okhttp3:okhttp:3.2.0' implementation 'com.aliyun.dpa:oss-android-sdk:+'
初始化相關配置。
在App的Application類onCreate方法中調用,示例代碼如下所示。
com.aliyun.vod.common.httpfinal.QupaiHttpFinal.getInstance().initOkHttpFinal();
配置權限
<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.**{*;}