This topic describes the environment requirements, integration methods, and permission configurations of the audio and video terminal SDK for Android.

Environment requirements

ItemRequirement
AndroidAndroid 5.0 or later.
Mobile phone processorOne of the following processor architectures is used:
  • ARMv7
  • ARM64
Development toolWe 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 packageScenarioSDK combination
AliVCSDK_StandardAll-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_PremiumAll-in-one (retouching included)Push SDK (RTS and RTC included), the short video SDK, Queen SDK, and ApsaraVideo Player SDK
AliVCSDK_BasicLiveBasic live streamingPush SDK and ApsaraVideo Player SDK
AliVCSDK_StandardLiveBasic live streaming (retouching included)Push SDK, ApsaraVideo Player SDK, and Queen SDK
AliVCSDK_UGCShort videosShort video SDK and ApsaraVideo Player SDK
AliVCSDK_UGCProShort videos (retouching included)Short video SDK, Queen SDK, and ApsaraVideo Player SDK
AliVCSDK_InteractiveLiveInteractive streaming, which is suitable for business in RTS and RTC scenariosPush SDK (RTS and RTC included) and ApsaraVideo Player SDK
AliVCSDK_PremiumLiveInteractive streaming (retouching included), which is suitable for business in RTS and RTC scenariosPush SDK (RTS and RTC included), Queen SDK, and ApsaraVideo Player SDK

(Recommended) Integrate the SDK online

Note Make sure that the network is connected and you can access the Alibaba Cloud Maven repository. If you cannot download an SDK package from the Maven repository due to a network failure, we recommend that you integrate the SDK by using local files. For more information, see Integrate the SDK offline.
  1. 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" }
    build
  2. 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 packageDownload link
AliVCSDK_Standard.aar.zipAliVCSDK_Standard.aar.zip
AliVCSDK_Premium.aar.zipAliVCSDK_Premium.aar.zip
AliVCSDK_BasicLive.aar.zipAliVCSDK_BasicLive.aar.zip
AliVCSDK_UGC.aar.zipAliVCSDK_UGC.aar.zip
AliVCSDK_UGCPro.aar.zipAliVCSDK_UGCPro.aar.zip
AliVCSDK_StandardLive.aar.zipAliVCSDK_StandardLive.aar.zip
AliVCSDK_InteractiveLive.zipAliVCSDK_InteractiveLive.zip
AliVCSDK_PremiumLive.zipAliVCSDK_PremiumLive.zip
  1. 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.
    Integrate the SDK offline
  2. In the build.gradle file of the project, add the flatDir setting to the repositories section of the allprojects block.
    flatDir {
       dirs 'libs'
    }
  3. 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.