All Products
Search
Document Center

ApsaraVideo Live:SDK download and integration

Last Updated:Apr 11, 2026

This topic provides download links for the ARTC SDK, explains the integration process, and includes other relevant information.

SDK downloads

Developer: Alibaba Cloud

Platform

Download

Release date

Size

(Varies by version)

Android

2026-04-08

6.0 MB (arm64)

iOS

2026-04-08

6.5 MB (arm64)

Windows

2025-09-02

-

macOS

2025-12-01

-

To integrate the Web SDK, see Getting started with the Alibaba Cloud ARTC Web SDK.

Integrate the SDK

Android

Environment requirements

Before you integrate the ARTC SDK, ensure your development environment meets the following requirements:

  • Android Studio 2020.3.1 or later.

  • A physical device that runs Android 5.0 (API Level 21) or later and is connected to the internet.

Step 1: Import the SDK

Maven (recommended)

  1. Open the settings.gradle file in the root directory of your project. In the dependencyResolutionManagement/repositories block, add the Maven repositories for the ARTC SDK, as shown in the following example:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // Add the Maven repositories for the ARTC SDK
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
    }
}

Note that if you use an Android Gradle Plugin version earlier than 7.1.0, you may not find the corresponding block in the settings.gradle file. For more information, see Android Gradle Plugin 7.1. In this case, use the following alternative:

For Android Gradle Plugin versions earlier than 7.1.0

Open the build.gradle file in the root directory of your project. In the allprojects/repositories block, add the Maven repository addresses as follows:

allprojects {
    repositories {
        ...
        // Add the Maven repositories for the ARTC SDK
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
    }
}
  1. Open the app/build.gradle file and add the dependency for the ARTC SDK in the dependencies block. You can find version information in SDK Downloads. Replace ${latest_version} with the specific version number. The latest version is 7.11.0.

dependencies {
    // Add the dependency for the ARTC SDK
    // Replace ${latest_version} with the specific version number
    implementation 'com.aliyun.aio:AliVCSDK_ARTC:${latest_version}'
    // For versions 7.4.0 and earlier, you must also add the keep dependency
    // implementation 'com.aliyun.aio.keep:keep:1.0.1'
}

If you are using Android Gradle Plugin 8.1 or later, Android Studio recommends migrating your dependencies to a version catalog. For more information, see Migrating dependencies to a version catalog.

Manual

  1. From SDK Downloads, download the AAR file for the required version of the ARTC SDK. The latest version is 7.11.0. The filename is in the format AliVCSDK_ARTC-x.y.z.aar.

  2. Copy the downloaded AAR file to your project directory, for example, app/libs. If this directory does not exist, create it.

  3. Open the settings.gradle file in the root directory of your project. In the dependencyResolutionManagement/repositories block, add the directory that contains the AAR file, as shown in the following example:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // Add the relative path to the directory that contains the ARTC SDK
        flatDir {
            dir 'app/libs'
        }
    }
}

Note that if you use an Android Gradle Plugin version earlier than 7.1.0, you may not find the corresponding block in the settings.gradle file. For more information, see Android Gradle Plugin 7.1. In this case, use the following alternative:

Open the build.gradle file in the root directory of your project and add the following configuration to the allprojects/repositories block:

allprojects {
    repositories {
        ...
        // Add the relative path to the directory that contains the ARTC SDK
        flatDir {
            dir 'app/libs'
        }
    }
}
  1. Open the app/build.gradle file. In the dependencies block, add the dependency for the AAR file as follows:

// Replace x.y.z with the specific version number
implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')
  1. After the build is complete, you can find the corresponding dependency under External Libraries.

    image

Step 2: Configure supported CPU architectures

Open the app/build.gradle file. In the defaultConfig block, specify the CPU architectures that your project supports. Valid architectures include armeabi-v7a, arm64-v8a, x86, and x86_64. Configure them based on your project requirements.

android {
    defaultConfig {
        // ...other default configurations
        // Supports armeabi-v7a and arm64-v8a architectures
        ndk {
             abiFilters "armeabi-v7a", "arm64-v8a"
        }
    }
}	

Step 3: Set permissions

Configure the required permissions for your application based on its use case.

Navigate to the app/src/main directory, open the AndroidManifest.xml file, and add the required permissions.

<uses-feature android:name="android.hardware.camera" android:required="false" /> 
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission
  android:name="android.permission.BLUETOOTH"
  android:maxSdkVersion="30" />
<uses-permission
  android:name="android.permission.BLUETOOTH_ADMIN"
  android:maxSdkVersion="30" />

<!-- Needed only if your app communicates with already-paired Bluetooth devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"
  tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

Bluetooth runtime permissions

The AndroidManifest.xml file in the ARTC SDK includes declarations for several permissions but does not contain the logic for requesting them at runtime. The BLUETOOTH_CONNECT permission, in particular, is a runtime permission introduced in Android 12. After you import the ARTC SDK, the following permissions are automatically merged into your app's manifest. Handle permission requests based on your app's specific use case.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

If your application does not require a specific permission, you can explicitly remove its declaration in your main project's AndroidManifest.xml file:

<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove"/>

Follow this guidance for Bluetooth permissions:

Scenario 1: App requires Bluetooth

For apps with targetSdk < 31

When your project's targetSdk is less than 31, Bluetooth functionality is controlled by the legacy BLUETOOTH permission. You can declare the following in your app's manifest:

<!-- Declare the legacy Bluetooth permission -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- Override and remove the permission for API 31+ -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />
Note
  • The SDK includes the declaration for the BLUETOOTH_CONNECT permission, which was introduced in Android 12 (API level 31) and must be requested at runtime by using requestPermissions.

  • On some devices, if an app's manifest includes the BLUETOOTH_CONNECT declaration, the system requires you to request the permission at runtime. Failure to do so may cause a SecurityException. If you encounter this issue, you have two options:

    • Option 1: Remove the permission declaration by using tools:node="remove".

    • Option 2: Request the permission at runtime.

For apps with targetSdk >= 31

When your project's targetSdk is 31 or higher, you need to handle both legacy and new Bluetooth permissions. Declare the permissions in your main app's AndroidManifest.xml file:

<!-- Declare the legacy Bluetooth permission and set android:maxSdkVersion to 30 for backward compatibility -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- Declare the Bluetooth permission for API 31+ -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- Other Bluetooth permissions -->

Since BLUETOOTH_CONNECT is a runtime permission, you must also request it in your code:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    String[] permissions = {
        android.Manifest.permission.BLUETOOTH_CONNECT
    };
    ActivityCompat.requestPermissions(activity, permissions, REQUEST_BLUETOOTH);
}
Scenario 2: App does not require Bluetooth

To avoid potential crashes or permission pop-ups related to Bluetooth, remove unnecessary Bluetooth permissions.

In your main project's AndroidManifest.xml file, use tools:node="remove" to override and remove the permissions:

<!-- Override and remove Bluetooth permission declarations from the ARTC SDK -->
<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />

Other runtime permissions

On Android 6.0 (API level 23) and later, you must request a dangerous permission at runtime. In addition to declaring the permission in the AndroidManifest.xml file, you must also request it in your code at runtime.

The following permissions require a runtime request:

  • Manifest.permission.CAMERA

  • Manifest.permission.WRITE_EXTERNAL_STORAGE

  • Manifest.permission.RECORD_AUDIO

  • Manifest.permission.READ_EXTERNAL_STORAGE

  • Manifest.permission.READ_PHONE_STATE

On Android 12 (API level 31) and later, you must also request the following permission at runtime:

  • Manifest.permission.BLUETOOTH_CONNECT

The following table describes relevant permissions.

Name

Description

Purpose

Required

Runtime request

CAMERA

Camera permission.

To access the device camera to capture video streams.

Yes

Android >= 6.0

RECORD_AUDIO

Microphone permission.

To access the device microphone to capture audio streams.

Yes

Android >= 6.0

INTERNET

Network permission.

To transmit audio and video data over the network (for example, using protocols like WebRTC).

Yes

No

ACCESS_NETWORK_STATE

Allows the app to access the network state.

To monitor network connectivity to optimize transmission quality, such as handling reconnection.

As needed

No

ACCESS_WIFI_STATE

Allows the app to access the Wi-Fi state.

To retrieve current Wi-Fi connection information to optimize network performance.

As needed

No

MODIFY_AUDIO_SETTINGS

Allows the app to modify audio settings.

To adjust system volume and switch audio output devices.

As needed

No

BLUETOOTH

Basic Bluetooth permission.

To connect to Bluetooth devices, such as headsets.

As needed

No

BLUETOOTH_CONNECT

Bluetooth connection permission.

To communicate with paired Bluetooth devices, such as by streaming audio.

As needed

Android >= 12

READ_PHONE_STATE

Allows access to the phone state.

To start or stop audio based on phone call status.

As needed

Android >= 6.0

READ_EXTERNAL_STORAGE

Allows the app to read files from external storage.

To play local music files.

As needed

Android >= 6.0

WRITE_EXTERNAL_STORAGE

Allows the app to write to external storage.

To save audio files, video files, and logs.

As needed

Android >= 6.0

Step 4: Prevent code obfuscation (optional)

In your app/proguard-rules.pro file, add the following rules for the SDK. These rules prevent obfuscation of the SDK's public interfaces, which can cause your application to fail.

-keep class com.aliyun.allinone.** {
*;
}

-keep class com.aliyun.rts.network.AliHttpTool {
*;
}

-keep class com.aliyun.common.AlivcBase {
*;
}

-keep class com.huawei.multimedia.alivc.** {
*;
}

-keep class com.alivc.rtc.** {
*;
}

-keep class com.alivc.component.** {
*;
}

-keep class org.webrtc.** {
*;
}

FAQ

Does the ARTC SDK introduce extra permissions?

After you import the ARTC SDK, the following Android permissions are automatically declared (The specific list may vary depending on the SDK version. For the definitive list, refer to the content of AndroidManifest.xml in the integrated .aar file):

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

These permissions are primarily used for features such as network state detection, Wi-Fi information access, Bluetooth connectivity, and audio routing.

Handling permission conflicts

Although the ARTC SDK includes internal logic to handle Android version compatibility (such as the runtime permission requirement for BLUETOOTH_CONNECT on Android 12+), issues can still arise in certain scenarios:

  • Build or runtime issues: Your app may experience manifest merge failures during the build process or unexpected behavior at runtime.

  • Google Play review risks: If your app declares a permission for a feature it does not use (such as Bluetooth), it may violate the principle of least privilege and risk rejection from the Play Store.

To resolve these issues, use the following measures:

  1. Evaluate permission requirements
    First, evaluate if your app truly needs all the permissions declared by the SDK. If a feature, such as Bluetooth, is not used, you can remove the corresponding permission declaration. For example, if your app runs only on devices with Android API 30 or lower, you can remove the declaration for the BLUETOOTH_CONNECT permission because your targetSdk version is 30 or lower.

  2. Resolve conflicts by using Manifest merge directives
    If multiple modules declare different attributes for the same permission, such as an inconsistent maxSdkVersion, you can use the tools namespace in the main AndroidManifest.xml file to resolve the conflict:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools">
        
        <!-- Example: Remove a permission declared by the SDK but not needed by the app -->
        <uses-permission 
            android:name="android.permission.BLUETOOTH_CONNECT"
            tools:node="remove" />
            
        <!-- Example: Override a permission attribute -->
        <uses-permission
            android:name="android.permission.BLUETOOTH"
            android:maxSdkVersion="30"
            tools:replace="android:maxSdkVersion" />
    </manifest>
    

iOS

Environment requirements

Before you integrate the ARTC SDK, ensure your development environment meets the following requirements:

  • Xcode 14.0 or later. The latest official version is recommended.

  • CocoaPods 1.9.3 or later.

  • A physical device running iOS 9.0 or later.

Step 1: Import the SDK

CocoaPods (recommended)

  1. Open Terminal and install CocoaPods on your development device. If CocoaPods is already installed, skip this step.

sudo gem install cocoapods
  1. Open Terminal, navigate to the root directory of your project, and run the following command to create a Podfile.

pod init
  1. Open and edit the generated Podfile to add the dependency for the ARTC SDK. The latest version is 7.11.0.

target 'MyApp' do
  use_frameworks!
  # Replace ${latest version} with a specific version number.
  pod 'AliVCSDK_ARTC', '~> ${latest version}'
end
  1. In Terminal, run the following command to update the CocoaPods dependencies in your project.

pod install
  1. After the command completes, a project file with the .xcworkspace extension is generated in the project folder. Double-click this file to open the project in Xcode. The workspace automatically loads the CocoaPods dependencies.

    image

Manual

  1. Download the latest ARTC SDK package and decompress it.

  2. Copy the framework files from the decompressed package to your project directory.

  3. Open your project in Xcode, choose File -> Add Files to "xxx", and add the SDK library files to your project.

    image

  4. Select the target and set the Embed attribute for the imported frameworks to "Embed & Sign".

image

Step 2: Set permissions

  • You must add permissions for camera and microphone access.

In the Info.plist file, add keys and descriptions for Privacy - Camera Usage Description and Privacy - Microphone Usage Description.

image.png

  • Enable background audio mode (optional).

To enable this mode, select Audio, AirPlay, and Picture in Picture in your project's capabilities.

image.png

Windows

Environment requirements

Before you integrate the ARTC SDK, ensure your development environment meets the following requirements:

  • Visual Studio 2015 or later.

  • Windows 7 or later.

Integrate the SDK

  1. Download the latest ARTC SDK package.

  2. Decompress the package and copy the files into your project.

  3. Configure project properties:

    1. In the Solution Explorer window, right-click the project and select Properties.

    2. Add include directories: Navigate to Configuration PropertiesC/C++ General, and add the header file path to Additional Include Directories.

    3. Add a library directory. In the Properties window, select Configuration Properties > Linker > General. In the Additional Library Directories field, add the path to the library file (.lib), such as .../x64/Release.

    4. Specify link library files: In the Properties window, navigate to Configuration PropertiesLinkerInput, and add the library file name "AliRTCSdk.lib" to Additional Dependencies.

macOS

Environment requirements

Before you integrate the ARTC SDK, ensure your development environment meets the following requirements:

  • Development tool: Xcode 14.0 or later. The latest official version is recommended.

  • Test device: A Mac computer running macOS 10.13 or later.

  • Network environment: A stable network connection is required.

  • Application preparation: Obtain the AppID and AppKey for your real-time communication application. For more information, see Create an application.

Manual integration

  1. Download the latest ARTC SDK package and decompress it.

  2. Copy the files from the SDK package to your project directory. If you do not use AAC for audio encoding, omit the PluginAAC.framework.

  3. Open Xcode and add the required dynamic library. Set the Embed attribute for the added dynamic library to Embed & Sign.

Release history

Version

Platform

Release date

Description

v7.11.0

iOS

2026-04-08

  • Fixed: RTC: Addressed stability issues.

Android

v7.10.0

iOS

2026-01-10

  • Fixed:

    • RTC: Addressed stability issues.

Android

v7.9.1

iOS

2025-12-04

  • Optimized:

    • Reduced the RTC SDK thread count to improve performance.

    • Added preloading to the RTC SDK.

  • Fixed:

    • RTC: Addressed stability issues.

Android

v7.8.1

iOS

2025-11-12

  • Optimized:

    • Improved user experience.

  • Fixed:

    • RTC: Addressed stability issues.

Android

v7.8.0

iOS

2025-11-05

  • Optimized:

    • RTC: Optimized thread performance.

  • Fixed:

    • RTC: Addressed stability issues.

Android

macOS

2025-12-01

v7.7.0

iOS

2025-09-30

  • Added:

    • RTC: Added support for local recording of audio and video to MP4, AAC, and WAV files.

    • RTC: Added support for the new audio focus API (API 26) on Android, enabled by default.

  • Optimized:

    • RTC: The audio data callback now supports a 24 kHz sample rate.

  • Fixed:

    • RTC: Addressed stability issues.

Android

v7.6.0

iOS

2025-09-02

  • Added:

    • RTC: Added an allowlist/blocklist for subscribing to audio and video streams.

    • RTC: Added support for screen sharing on Android 14.

  • Optimized:

    • RTC: Added an option to use the right channel during stereo-to-mono downmixing.

    • RTC: In AI scenarios, capture and stream pushing now prefer a 16 kHz sample rate.

  • Fixed:

    • RTC: Addressed stability issues.

Android

Windows

v7.5.0

iOS

2025-07-31

  • Added:

    • Added an option to display a black frame when the camera is turned off.

    • Added screen sharing.

  • Optimized:

    • Reduced engine creation time.

    • Improved network engine performance.

  • Fixed:

    • Fixed an issue where stream pulling from an iOS client failed for streams pushed from a Web client.

Android

v7.4.0

iOS

2025-07-01

  • Improved the 3A effect.

  • Fixed stability issues.

Android

v7.3.0

iOS

2025-05-30

  • Optimized RTC performance in low-bandwidth and rate-limited network conditions.

  • Fixed stability issues.

Android

v7.2.1

Windows

2025-05-12

  • Added support for audio resampling before playback.

  • Fixed stability issues.

v7.2.0

iOS

2025-04-28

  • Added support for audio resampling before playback.

  • Fixed an issue in the audio mute mode where both the Default and All settings muted all streams.

    Note

    If you are upgrading from versions v6.18.0-v7.1.0, review your audio mute API settings.

Android

v7.1.0

iOS

2025-04-01

  • External PCM input now supports 3A audio processing.

  • Added support for H.265 software encoding.

  • Added support for high-quality H.264 software encoding.

Android

2025-04-01

v7.0.0

iOS

2025-02-28

  • Added API configuration for 3A audio processing.

  • Improved video decoding performance.

Android

Windows

2025-03-31

  • Major version release.

v6.21.0

iOS

2025-01-22

  • Enhanced data statistics for AI-powered real-time communication use cases.

Android

v6.20.0

iOS

2024-12-30

  • Improved audio latency profiling accuracy, increased channel join speed, and fixed stability issues.

Android

v6.19.0

iOS

2024-12-20

  • Improved end-to-end voice latency profiling accuracy and fixed compatibility issues on certain devices.

Android

v6.18.0

iOS

2024-12-09

  • Reduced latency, accelerated call setup, and added support for end-to-end voice latency profiling in AI+RTC use cases.

Android

v6.17.0

iOS

2024-11-04

  • Optimized scheduling to reduce latency for AI+RTC use cases.

  • Added an API to separately configure the camera capture frame rate.

Android

v6.15.0

iOS

2024-09-24

  • Improved weak network resilience.

  • Improved video hardware decoding compatibility.

Android

Windows

  • Added support for window-based screen sharing.

  • Added H.265 encoding support.

v6.11.3

iOS

2024-09-14

In AI+RTC use cases, added a chatroom AudioProfile to ensure the complete playback of welcome messages.

Android

2024-09-14

v6.11.2

iOS

2024-08-16

  • Reduced audio and video latency.

  • Reduced the package size.

Android

v6.8.7

iOS

2024-06-03

  • Optimized the stream pushing retry strategy, improving the success rate.

Android

v6.8.5

iOS

2024-04-01

  • Added support for cross-room stream subscriptions.

Android

v6.8.2

iOS

2024-03-04

  • Added support for external texture and CVPixelBuffer input on mobile platforms.

  • Improved network failover.

Android

v6.8.1

Windows

2024-03-19

  • Initial release of the Windows SDK.

v6.4.3

iOS

2023-12-04

  • Initial release of the iOS and Android SDKs.

Android