本文为您介绍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和播放器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.7.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.7.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.7.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的获取及详细信息请参见管理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.**{*;}
初始化SDK
注意:使用短视频SDK前,必须进行如下初始化操作。接口参数请参考AlivcSdkCore。
//初始化
bool result = AlivcSdkCore.register(Context context)
//如果reuslt返回false,表示License初始化失败,请检查License的配置是否正确。
如果License处于失效、无效或过期的状态,短视频SDK将不可以再使用。
日志
短视频SDK提供了多种日志级别模式AlivcLogLevel,支持输出日志到文件。打开日志后可通过tag : AliYunLog过滤相应日志信息。
//打开日志功能
AlivcSdkCore.setLogLevel(AlivcLogLevel level)
//设置输出日志的文件路径
AlivcSdkCore.setLogPath(String path)
//设置输出日志的级别
AlivcSdkCore.setDebugLoggerLevel(AlivcDebugLoggerLevel level)