All Products
Search
Document Center

Intelligent Media Services:Download and integrate the SDK

Last Updated:Dec 26, 2025

This topic provides download links for the ApsaraVideo Real-time Communication (ARTC) SDK, shows you how to integrate the SDK, and provides related information.

SDK downloads

Developer: Alibaba Cloud Computing Co., Ltd.

Platform

Download

Update date

Package size increment

(Example based on v6.8.5. Varies between versions.)

Android

2025-11-12

6.0 MB (arm64)

iOS

2025-11-12

6.5 MB (arm64)

Windows

2025-09-02

-

For more information about how to integrate the Web SDK, see Get started with the Alibaba Cloud ARTC Web SDK.

Integrate the SDK

Android

Preparations

Before you integrate the ARTC SDK, make sure that your development environment meets the following requirements:

  • Android Studio 2020.3.1 or a later version.

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

Step 1: Import the SDK

Automatic integration using Maven (recommended)

  1. In the root directory of your project, open the settings.gradle file. Add the Maven repository for the ARTC SDK to the dependencyResolutionManagement/repositories field.

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

Note: If you use a version of the Android Gradle Plugin earlier than 7.1.0, you may not find the corresponding field in the settings.gradle file. For more information, see Android Gradle Plugin 7.1. In this case, use the following alternative solution:

Alternative solution for Android Gradle Plugin versions earlier than 7.1.0

In the root directory of your project, open the build.gradle file. Add the Maven repository address to allprojects/repositories.

allprojects {
    repositories {
        ...
        // Add the Maven repository 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 on the ARTC SDK to dependencies. You can find the version number in SDK downloads. Replace ${latest_version} with the specific version number. The latest version is 7.8.1.

dependencies {
    // Import the dependency on the ApsaraVideo Real-time Communication SDK.
    // Replace ${latest_version} with the specific version number.
    implementation 'com.aliyun.aio:AliVCSDK_ARTC:${latest_version}'
    // For v7.4.0 and earlier, you must add keep.
    // implementation 'com.aliyun.aio.keep:keep:1.0.1'
}

If you use the Android Gradle Plugin 8.1 or a later version, Android Studio recommends that you migrate dependency information to the version catalog. For more information, see Migrate dependencies to version catalogs.

Manual integration by downloading the SDK

  1. From SDK downloads, download the AAR file of the ARTC SDK for the version that you need. The latest version is 7.8.1. The file is named AliVCSDK_ARTC-x.y.z.aar.

  2. Copy the downloaded AAR file to your project directory, such as app/libs. If this folder does not exist, you can create it.

  3. In the root directory of your project, open the settings.gradle file. Add the folder that contains the AAR file to dependencyResolutionManagement/repositories.

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // Add the relative directory where the ARTC SDK is located.
        flatDir {
            dir 'app/libs'
        }
    }
}

Note: If you use a version of the Android Gradle Plugin earlier than 7.1.0, you may not find the corresponding field in the settings.gradle file. For more information, see Android Gradle Plugin 7.1. In this case, use the following alternative solution:

In the root directory of your project, open the build.gradle file. Add the following field to allprojects/repositories:

allprojects {
    repositories {
        ...
        // Add the relative directory where the ARTC SDK is located.
        flatDir {
            dir 'app/libs'
        }
    }
}
  1. Open the app/build.gradle file and add the dependency on the AAR file to dependencies.

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

    image

Step 2: Configure supported CPU architectures

Open the app/build.gradle file. In defaultConfig, specify the CPU architectures that your project supports, such as armeabi-v7a, arm64-v8a, x86, and x86_64.

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

Step 3: Set permissions

You can set the permissions that are required by your application as needed. The procedure is as follows:

Go 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" />

Note: For Android 6.0 (API 23) and later, you must request dangerous permissions dynamically. In addition to declaring them statically in the AndroidManifest.xml file, you must also request permissions at runtime.

You must request some permissions dynamically. These permissions include the following:

  • Manifest.permission.CAMERA

  • Manifest.permission.WRITE_EXTERNAL_STORAGE

  • Manifest.permission.RECORD_AUDIO

  • Manifest.permission.READ_EXTERNAL_STORAGE

  • Manifest.permission.READ_PHONE_STATE

If the Android system version is 12 or later (API_LEVEL >= 31), you must also dynamically request the following permission:

  • Manifest.permission.BLUETOOTH_CONNECT

The following describes some of the permissions that may be required:

Permission name

Permission description

Reason for request

Required

Dynamic permission

CAMERA

Camera permission.

Access the device camera to capture video streams.

Yes

Android 6.0 or later

RECORD_AUDIO

Microphone permission.

Access the device microphone to capture audio streams.

Yes

Android 6.0 or later

INTERNET

Network permission.

Transmit audio and video data over the network (for example, using protocols such as WebRTC).

Yes

No

ACCESS_NETWORK_STATE

Allows the application to get the network status.

Monitor the network connection status to optimize audio and video transmission quality, for example, for reconnection after a network disconnection.

As needed

No

ACCESS_WIFI_STATE

Allows the application to get the Wi-Fi status.

Get the current Wi-Fi connection information to optimize network performance.

As needed

No

MODIFY_AUDIO_SETTINGS

Allows the application to modify audio configurations.

Adjust the system volume, switch audio output devices, and so on.

As needed

No

BLUETOOTH

Bluetooth permission (basic feature)

Connect to Bluetooth devices (such as Bluetooth headsets).

As needed

No

BLUETOOTH_CONNECT

Bluetooth connection permission

Communicate with paired Bluetooth devices (for example, to transmit audio streams).

As needed

Android 12 or later

READ_PHONE_STATE

Allows the application to access information related to the device's phone state.

Start or stop audio based on the phone state.

As needed

Android 6.0 or later

READ_EXTERNAL_STORAGE

Allows the application to read files from external storage.

Play local music, and so on.

As needed

Android 6.0 or later

WRITE_EXTERNAL_STORAGE

Allows the application to write to external storage.

Save audio and video files, logs, and so on.

As needed

Android 6.0 or later

Step 4: Prevent code obfuscation (optional)

In the app/proguard-rules.pro file, configure rules for the SDK to prevent its interfaces from being obfuscated. This ensures that the interfaces can be called correctly.

-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 additional permissions?

After you import the ARTC SDK, the following Android permissions are automatically declared. The specific list may vary based on the SDK version. For the exact list, check the AndroidManifest.xml file 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 mainly used to support features such as network status detection, Wi-Fi information retrieval, Bluetooth connection, and audio routing.

How do I handle compatibility or conflict issues with SDK permissions?

Although the ARTC SDK internally handles Android version compatibility for permissions, such as the runtime permission requirement for BLUETOOTH_CONNECT on Android 12+ (API 31), issues can still arise. These issues include runtime errors, such as a failed manifest merge, or Google Play review rejections for violating the principle of least privilege if your app declares permissions for features it does not use, such as Bluetooth.

  • Runtime errors, such as a failed manifest merge.

  • Rejection during Google Play review: Declaring a permission for an unused feature, such as Bluetooth, violates the principle of least privilege. This can cause Google Play to reject your application's listing.

To resolve these issues, perform the following steps:

  1. Assess permission necessity
    First, assess whether your application needs all the permissions that are declared by the SDK. If a feature such as Bluetooth is not used, consider removing the corresponding permission declaration. For example, if your application runs only on devices with Android API 30 or lower (targetSdk is below 30), you can remove the BLUETOOTH_CONNECT permission declaration.

  2. Use manifest merge rules to resolve conflicts
    If multiple modules declare different attributes for the same permission, such as an inconsistent maxSdkVersion, you can use the tools namespace in your 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

Preparations

Before you integrate the ARTC SDK, make sure that your development environment meets the following requirements:

  • Xcode 14.0 or a later version. We recommend that you use the latest official version.

  • CocoaPods 1.9.3 or a later version.

  • A physical device that runs iOS 9.0 or a later version.

Step 1: Import the SDK

Automatic integration using CocoaPods (recommended)

  1. Open Terminal and install CocoaPods. If you have already installed CocoaPods, you can skip this step.

sudo gem install cocoapods
  1. Open Terminal, go 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 on the ARTC SDK. The latest version is 7.8.1.

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

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

    image

Manual integration by downloading the SDK

  1. From SDK downloads, obtain the latest ARTC SDK file and decompress it.

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

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

    image

  4. Select the target and set the imported framework files to "Embed & Sign".

image

Step 2: Set permissions

  • You must add permissions for the microphone and camera.

In the Info.plist file, add the Privacy - Camera Usage Description and Privacy - Microphone Usage Description permissions for the camera and microphone.

image.png

  • Enable audio background capture mode (optional).

As shown in the following figure, select Audio, AirPlay, and Picture in Picture.

image.png

Windows

Preparations

Before you integrate the ARTC SDK, make sure that your development environment meets the following requirements:

  • Visual Studio 2015 or a later version.

  • Windows 7 or a later version.

Integrate the SDK

  1. From SDK downloads, obtain the latest ARTC SDK file.

  2. Decompress the ARTC SDK file and copy the files from the directory to your project.

  3. Configure project properties:

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

    2. Add include directories: Go to Configuration Properties > C/C++ > General. In Additional Include Directories, add the header file path.

    3. Add library directories: In the Properties window, go to Configuration Properties > Linker > General. In Additional Library Directories, add the path of the library files (.lib), such as .../x64/Release.

    4. Specify link library files: In the Properties window, go to Configuration Properties > Linker > Input. In Additional Dependencies, add the name of the library file to be linked, which is "AliRTCSdk.lib".

Release history

Version number

Platform

Update date

Revisions

v7.8.1

iOS

2025-11-12

  • Optimizations:

    • Optimized the user experience.

  • Fixes:

    • RTC: Fixed stability issues.

Android

Linux

v7.8.0

iOS

2025-11-05

  • Optimizations:

    • RTC: Optimized thread performance.

  • Fixes:

    • RTC: Fixed stability issues.

Android

Linux

v7.7.0

iOS

2025-09-30

  • New:

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

    • RTC: Supports the new API for audio focus on Android API 26 and later. This feature is enabled by default.

  • Optimizations:

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

  • Fixes:

    • RTC: Fixed stability issues.

Android

v7.6.0

iOS

2025-09-02

  • New:

    • RTC: Added blacklists and whitelists for subscribing to audio/video streams.

    • RTC: Supports screen sharing on Android 14.

  • Optimizations:

    • RTC: Supports configuring the use of the right channel during stereo-to-mono conversion in resampling.

    • RTC: Prioritizes 16 kHz for capture/ingest in AI scenarios.

  • Fixes:

    • RTC: Fixed stability issues.

Android

Windows

V7.5.0

iOS

2025-07-31

  • Added:

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

    • Added screen sharing capabilities.

  • Optimizations:

    • Optimized engine creation time.

    • Optimized network engine time consumption.

  • Fixes:

    • Fixed an issue where stream pulling from an iOS client failed when the stream was ingested from a web client.

Android

v7.4.0

iOS

2025-07-01

  • Optimized 3A effects.

  • Fixed stability issues.

Android

v7.3.0

iOS

2025-05-30

  • Optimized RTC for low-bandwidth, rate-limited scenarios.

  • Fixed stability issues.

Android

v7.2.1

Windows

2025-05-12

  • Supports audio resampling before playback.

  • Fixed stability issues.

v7.2.0

iOS

2025-04-28

  • Supports audio resampling before playback.

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

    Note

    If you upgrade from a version between v6.18.0 and v7.1.0 to v7.2.0, note the settings for the audio mute interface.

Android

v7.1.0

iOS

2025-04-01

  • External PCM input supports 3A.

  • Supports H.265 software encoding.

  • Supports high-quality H.264 software encoding.

Android

2025-04-01

v7.0.0

iOS

2025-02-28

  • Audio 3A processing supports API configuration.

  • Optimized video decoding performance.

Android

Windows

2025-03-31

  • Major version update.

v6.21.0

iOS

2025-01-22

  • Improved data statistics capabilities for AI real-time call scenarios.

Android

v6.20.0

iOS

2024-12-30

  • Optimized the accuracy of the audio latency profile, improved the speed of joining a channel, and resolved some stability issues.

Android

v6.19.0

iOS

2024-12-20

  • Optimized the accuracy of the end-to-end voice latency profile and resolved compatibility issues on some devices.

Android

v6.18.0

iOS

2024-12-09

  • For AI+RTC scenarios, optimized link latency, accelerated connection speed, and supported an end-to-end voice latency profile.

Android

v6.17.0

iOS

2024-11-04

  • For AI+RTC scenarios, optimized scheduling to reduce latency.

  • Added an interface to set the camera capture frame rate separately.

Android

v6.15.0

iOS

2024-09-24

  • Improved the link's resilience to weak network conditions.

  • Improved video hardware decoding compatibility.

Android

Windows

  • Added window screen sharing.

  • Added H.265 encoding.

v6.11.3

iOS

2024-09-14

For AI+RTC scenarios, provides an AudioProfile for chat rooms to ensure that welcome messages are played completely.

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 ingest retry policy to improve the success rate of stream ingest.

Android

v6.8.5

iOS

2024-04-01

  • Supports cross-channel subscription at the channel level.

Android

v6.8.2

iOS

2024-03-04

  • External texture/CVPixelBuffer input for mobile clients.

  • Enhanced network disaster recovery capabilities.

Android

v6.8.1

Windows

2024-03-19

  • Windows SDK released.

v6.4.3

iOS

2023-12-04

  • iOS & Android SDKs released.

Android