This topic describes the environment requirements, integration methods, and permission configurations of the audio and video terminal SDK for Android.
Environment requirements
| Item | Requirement |
|---|---|
| Android | Android 5.0 or later. |
| Mobile phone processor | One of the following processor architectures is used:
|
| Development tool | We recommend that you use Android Studio. The operations in this topic are based on Android Studio. To download Android Studio, visit Android Studio. |
SDK description
The audio and video terminal SDK V1.2.0 and later provide different SDK packages based on business scenarios. You can select an SDK package based on your business requirements. An SDK package is easy to use and smaller in size. The following table describes the SDK packages.
| SDK package | Scenario | SDK combination |
| AliVCSDK_Standard | All-in-one (retouching not included) | Push SDK, the short video SDK, and ApsaraVideo Player SDK. The Real-Time Streaming (RTS) and Real-Time Communication (RTC) modules are included in Push SDK. |
| AliVCSDK_Premium | All-in-one (retouching included) | Push SDK (RTS and RTC included), the short video SDK, Queen SDK, and ApsaraVideo Player SDK |
| AliVCSDK_BasicLive | Basic live streaming | Push SDK and ApsaraVideo Player SDK |
| AliVCSDK_StandardLive | Basic live streaming (retouching included) | Push SDK, ApsaraVideo Player SDK, and Queen SDK |
| AliVCSDK_UGC | Short videos | Short video SDK and ApsaraVideo Player SDK |
| AliVCSDK_UGCPro | Short videos (retouching included) | Short video SDK, Queen SDK, and ApsaraVideo Player SDK |
| AliVCSDK_InteractiveLive | Interactive streaming, which is suitable for business in RTS and RTC scenarios | Push SDK (RTS and RTC included) and ApsaraVideo Player SDK |
| AliVCSDK_PremiumLive | Interactive streaming (retouching included), which is suitable for business in RTS and RTC scenarios | Push SDK (RTS and RTC included), Queen SDK, and ApsaraVideo Player SDK |
(Recommended) Integrate the SDK online
- Add the URL of the Alibaba Cloud Maven repository to the build.gradle file of your project.
maven { url "https://maven.aliyun.com/nexus/content/repositories/releases" }
- Add dependencies to the dependencies block in the build.gradle file of your application.
// Select one of the following SDK combinations based on your business requirements. // 1. Push SDK (RTS and RTC included), the short video SDK, and ApsaraVideo Player SDK implementation 'com.aliyun.aio:AliVCSDK_Standard:6.0.0' // 2. Push SDK (RTS and RTC included), the short Video SDK, Queen SDK, and ApsaraVideo Player SDK implementation 'com.aliyun.aio:AliVCSDK_Premium:6.0.0' // 3. Push SDK and ApsaraVideo Player SDK implementation 'com.aliyun.aio:AliVCSDK_BasicLive:6.0.0' // 4. Push SDK, ApsaraVideo Player SDK, and Queen SDK implementation 'com.aliyun.aio:AliVCSDK_StandardLive:6.0.0' // 5. Short video SDK and ApsaraVideo Player SDK implementation 'com.aliyun.aio:AliVCSDK_UGC:6.0.0' // 6. Short video SDK, Queen SDK, and ApsaraVideo Player SDK implementation 'com.aliyun.aio:AliVCSDK_UGCPro:6.0.0' // 7. Push SDK (RTS and RTC included) and ApsaraVideo Player SDK implementation 'com.aliyun.aio:AliVCSDK_InteractiveLive:6.0.0' // 8. Push SDK (RTS and RTC included), Queen SDK, and ApsaraVideo Player SDK implementation 'com.aliyun.aio:AliVCSDK_PremiumLive:6.0.0'
Integrate the SDK offline
To integrate the SDK offline, you must download an SDK package based on your business requirements.
| SDK package | Download link |
|---|---|
| AliVCSDK_Standard.aar.zip | AliVCSDK_Standard.aar.zip |
| AliVCSDK_Premium.aar.zip | AliVCSDK_Premium.aar.zip |
| AliVCSDK_BasicLive.aar.zip | AliVCSDK_BasicLive.aar.zip |
| AliVCSDK_UGC.aar.zip | AliVCSDK_UGC.aar.zip |
| AliVCSDK_UGCPro.aar.zip | AliVCSDK_UGCPro.aar.zip |
| AliVCSDK_StandardLive.aar.zip | AliVCSDK_StandardLive.aar.zip |
| AliVCSDK_InteractiveLive.zip | AliVCSDK_InteractiveLive.zip |
| AliVCSDK_PremiumLive.zip | AliVCSDK_PremiumLive.zip |
- Copy the downloaded AAR package to the libs folder of your project. Note If no libs folder exists, manually create one. In this example, the audio and video terminal SDK V1.2.0 is used. You can select a version based on your business requirements.

- In the build.gradle file of the project, add the flatDir setting to the repositories section of the allprojects block.
flatDir { dirs 'libs' } - Add the reference to the AAR package to the dependencies block in the build.gradle file of your application.
dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) }
Configure permissions
######################Permissions on short videos#########################
<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" />
######################Permissions on live streaming#########################
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.VIBRATE" />
// Configure the permissions to use the recording feature.
<uses-permission android:name="android.permission.RECORD_AUDIO" />
// Configure the permissions to use the camera.
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
Configure a license
If you access an SDK for the first time, you must apply for a license and obtain the corresponding license key and license file. For more information, see Usage notes on licenses.
Configure obfuscation rules
######################Obfuscation configurations for ApsaraVideo Player SDK#########################
-keep class com.alivc.**{*;}
-keep class com.aliyun.**{*;}
-keep class com.cicada.**{*;}
-dontwarn com.alivc.**
-dontwarn com.aliyun.**
-dontwarn com.cicada.**
######################Obfuscation configurations for the short video SDK#########################
-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.**{*;}
######################Obfuscation configurations for Push SDK#########################
-keep class com.alivc.** { *;}
-keep class com.aliyun.rts.network.* { *;}
-keep class org.webrtc.ali.** {*;}
-keep class org.webrtc.utils.** {*;}API references
For more information about methods of the audio and video terminal SDK, see Overview.
FAQ
For FAQ about SDK integration, see FAQ.