All Products
Search
Document Center

ApsaraVideo Live:Unduh dan integrasikan SDK

Last Updated:Aug 18, 2026

Unduh dan integrasikan ARTC SDK pada Android, iOS, Windows, Mac, Linux, dan HarmonyOS.

Unduhan SDK

Developer: Alibaba Cloud Computing Co., Ltd.

Platform

Versi SDK

Tanggal Rilis

Ukuran Paket

Android

v7.11.0

8 April 2026

6,0 MB (arm64)

iOS

v7.11.0

8 April 2026

6,5 MB (arm64)

Linux

v7.10.0

10 Januari 2026

-

Windows

v7.6.0

2 September 2025

-

HarmonyOS

v7.9.1

12 Januari 2026

7,96 MB

Mac

v7.8.0

1 Desember 2025

-

Untuk integrasi Web, gunakan panduan Memulai dengan ARTC Web SDK.

Integrasi SDK

Integrasikan ARTC SDK pada setiap platform yang didukung dengan menggunakan versi SDK yang konsisten di seluruh platform.

Android

Prasyarat

Persyaratan:

  • Android Studio 2020.3.1 atau versi lebih baru.

  • Perangkat uji yang menjalankan Android 5.0 (SDK API level 21) atau versi lebih baru dengan konektivitas jaringan.

Langkah 1: Impor SDK

Integrasi otomatis Maven (disarankan)

  1. Buka file settings.gradle di direktori root proyek. Tambahkan repositori Maven ARTC SDK di bawah blok dependencyResolutionManagement/repositories:

    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
            // Tambahkan repositori Maven untuk ARTC SDK.
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
        }
    }
    Catatan

    Jika versi Android Gradle Plugin (AGP) Anda lebih rendah dari 7.1.0, file settings.gradle mungkin tidak berisi blok dependencyResolutionManagement, sebagaimana terdokumentasi dalam Catatan Rilis Android Gradle Plugin 7.1. Gunakan pendekatan berikut sebagai gantinya:

    Versi AGP lebih rendah dari 7.1.0

    Buka file build.gradle di direktori root proyek Anda. Tambahkan repositori Maven di bawah allprojects/repositories:

    allprojects {
        repositories {
            ...
            // Tambahkan repositori Maven untuk ARTC SDK.
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
        }
    }
  2. Buka app/build.gradle. Tambahkan dependensi ARTC SDK di bawah blok dependencies. Ganti \${latest_version} dengan nomor versi aktual. Versi terbaru adalah 7.11.0.

    dependencies {
        // Tambahkan dependensi ARTC SDK.
        // Ganti ${latest_version} dengan nomor versi aktual.
        implementation 'com.aliyun.aio:AliVCSDK_ARTC:${latest_version}'
        // Untuk versi 7.4.0 dan sebelumnya, tambahkan juga dependensi keep.
        // implementation 'com.aliyun.aio.keep:keep:1.0.1'
    }

    Untuk AGP 8.1+, pertimbangkan migrasi ke version catalogs. Migrasikan dependensi ke version catalogs.

Integrasi manual dengan mengunduh SDK

  1. Unduh file AAR ARTC SDK dari bagian unduhan SDK. Versi terbaru adalah 7.11.0. Format nama file: AliVCSDK_ARTC-x.y.z.aar.

  2. Salin file AAR ke direktori proyek Anda (misalnya, app/libs). Buat direktori tersebut jika diperlukan.

  3. Buka settings.gradle di direktori root proyek. Tambahkan direktori file AAR di bawah dependencyResolutionManagement/repositories:

    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
            // Tambahkan path relatif ke file AAR ARTC SDK.
            flatDir {
                dir 'app/libs'
            }
        }
    }

    Untuk versi AGP di bawah 7.1.0, tambahkan kode berikut ke allprojects/repositories dalam build.gradle:

    allprojects {
        repositories {
            ...
            // Tambahkan path relatif ke file AAR ARTC SDK.
            flatDir {
                dir 'app/libs'
            }
        }
    }
  4. Buka app/build.gradle. Tambahkan dependensi AAR di bawah dependencies:

    // Ganti x.y.z dengan nomor versi aktual.
    implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')
  5. Setelah build, dependensi akan muncul di bawah External Libraries.

    External Libraries
      > < Android API 35, extension level 13 Platform > /Users/wy/Libra...
      > < jbr-21 > /Applications/Android Studio.app/Contents/jbr/Conte...
      > Gradle: :AliVCSDK_ARTC:7.2.0@aar
      > Gradle: androidx.activity:activity:1.8.0@aar

Langkah 2: Konfigurasikan arsitektur CPU

Dalam app/build.gradle, tentukan arsitektur CPU yang didukung dalam blok defaultConfig. Arsitektur yang tersedia: armeabi-v7a, arm64-v8a, x86, dan x86_64.

android {
    defaultConfig {
        // ...konfigurasi default lainnya
        // Mendukung arsitektur armeabi-v7a dan arm64-v8a.
        ndk {
             abiFilters "armeabi-v7a", "arm64-v8a"
        }
    }
}

Langkah 3: Konfigurasikan izin

Dalam AndroidManifest.xml (app/src/main), tambahkan izin yang diperlukan:

<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" />
<!-- Minta izin Bluetooth lama pada perangkat lama. -->
<uses-permission
  android:name="android.permission.BLUETOOTH"
  android:maxSdkVersion="30" />
<uses-permission
  android:name="android.permission.BLUETOOTH_ADMIN"
  android:maxSdkVersion="30" />

<!-- Diperlukan hanya jika aplikasi Anda berkomunikasi dengan perangkat Bluetooth yang sudah dipasangkan. -->
<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" />

Minta izin Bluetooth secara dinamis

ARTC SDK menyertakan izin ini dalam AndroidManifest.xml-nya. Mulai Android 12, BLUETOOTH_CONNECT memerlukan permintaan saat runtime:

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

Jika aplikasi Anda tidak memerlukan Bluetooth, hapus deklarasi tersebut dari AndroidManifest.xml:

<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove"/>
Skenario 1: Fungsionalitas Bluetooth diperlukan

Aplikasi dengan targetSdk lebih rendah dari 31

Ketika targetSdk di bawah 31, izin lama BLUETOOTH mengontrol Bluetooth. Deklarasikan hal berikut:

<!-- Deklarasikan izin Bluetooth. -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- Timpa penghapusan izin API 31+ versi tinggi. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />
Catatan

SDK mendeklarasikan BLUETOOTH_CONNECT (Android 12, API 31), yang memerlukan permintaan runtime melalui requestPermissions. Pada beberapa perangkat, mendeklarasikan BLUETOOTH_CONNECT tanpa permintaan dinamis menyebabkan SecurityException. Solusi:

  • Hapus deklarasi izin menggunakan tools:node="remove".

  • Minta izin tersebut secara dinamis saat runtime.

Aplikasi dengan targetSdk 31 atau lebih tinggi

Untuk targetSdk 31+, deklarasikan kedua izin Bluetooth (lama dan modern) dalam AndroidManifest.xml:

<!-- Deklarasikan izin Bluetooth dengan android:maxSdkVersion diatur ke 30 untuk kompatibilitas mundur. -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- Deklarasikan izin Bluetooth API 31+ versi tinggi. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- Izin Bluetooth lainnya. -->

Karena BLUETOOTH_CONNECT merupakan izin dinamis, mintalah saat runtime:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    String[] permissions = {
        android.Manifest.permission.BLUETOOTH_CONNECT
    };
    ActivityCompat.requestPermissions(activity, permissions, REQUEST_BLUETOOTH);
}
Skenario 2: Fungsionalitas Bluetooth tidak diperlukan

Hapus deklarasi Bluetooth yang tidak diperlukan untuk mencegah crash atau permintaan izin yang tidak diinginkan.

Dalam AndroidManifest.xml, gunakan tools:node="remove" untuk menghapus izin tersebut:

<!-- Timpa dan hapus deklarasi izin Bluetooth bawaan dari ARTC SDK. -->
<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />

Izin dinamis lainnya

Mulai Android 6.0 (API 23), izin berikut juga memerlukan permintaan runtime selain deklarasi dalam AndroidManifest.xml:

  • Manifest.permission.CAMERA

  • Manifest.permission.WRITE_EXTERNAL_STORAGE

  • Manifest.permission.RECORD_AUDIO

  • Manifest.permission.READ_EXTERNAL_STORAGE

  • Manifest.permission.READ_PHONE_STATE

Untuk Android 12 (API 31) dan versi lebih baru, mintalah juga izin berikut saat runtime:

  • Manifest.permission.BLUETOOTH_CONNECT

Izin

Deskripsi

Alasan

Wajib

Dinamis

CAMERA

Izin akses kamera

Menangkap aliran video dari kamera perangkat

Ya

Android 6.0+

RECORD_AUDIO

Izin akses mikrofon

Menangkap aliran audio dari mikrofon perangkat

Ya

Android 6.0+

INTERNET

Izin akses jaringan

Mengirimkan audio/video data melalui jaringan (misalnya, protokol WebRTC)

Ya

Tidak

ACCESS_NETWORK_STATE

Akses status jaringan

Memantau konektivitas jaringan untuk mengoptimalkan kualitas audio/video, misalnya, koneksi ulang saat kehilangan jaringan

Opsional

Tidak

ACCESS_WIFI_STATE

Akses status Wi-Fi

Mendapatkan informasi koneksi Wi-Fi saat ini untuk mengoptimalkan kinerja jaringan

Opsional

Tidak

BLUETOOTH

Izin Bluetooth dasar

Menghubungkan ke perangkat Bluetooth (misalnya, headset Bluetooth)

Opsional

Tidak

BLUETOOTH_CONNECT

Izin koneksi Bluetooth

Berkomunikasi dengan perangkat Bluetooth yang telah dipasangkan (misalnya, streaming audio)

Opsional

Android 12+

READ_PHONE_STATE

Akses status telepon

Memulai atau menghentikan audio berdasarkan status telepon (misalnya, panggilan masuk)

Opsional

Android 6.0+

READ_EXTERNAL_STORAGE

Akses baca penyimpanan eksternal

Memutar musik lokal dan file lainnya

Opsional

Android 6.0+

WRITE_EXTERNAL_STORAGE

Akses tulis penyimpanan eksternal

Menyimpan file audio/video, log, dan data lainnya

Opsional

Android 6.0+

Langkah 4: Cegah obfuscation kode (opsional)

Tambahkan aturan berikut ke app/proguard-rules.pro untuk mencegah obfuscation kode SDK:

-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.** {
*;
}

iOS

Prasyarat

Persyaratan:

  • Xcode 14.0 atau versi lebih baru (disarankan versi stabil terbaru).

  • CocoaPods 1.9.3 atau versi lebih baru.

  • Perangkat fisik yang menjalankan iOS 9.0 atau versi lebih baru.

Langkah 1: Impor SDK

Integrasi otomatis CocoaPods (disarankan)

  1. Instal CocoaPods jika belum terinstal:

    sudo gem install cocoapods
  2. Buka direktori root proyek dan buat Podfile:

    pod init
  3. Buka file Podfile dan tambahkan dependensi ARTC SDK. Versi terbaru adalah 7.11.0.

    target 'MyApp' do
      use_frameworks!
      # Ganti ${latest version} dengan nomor versi aktual.
      pod 'AliVCSDK_ARTC', '~> ${latest version}'
    end
  4. Instal dependensi:

    pod install
  5. File .xcworkspace akan dibuat. Buka file tersebut untuk membuka proyek di Xcode.

Setelah membuka proyek, perluas folder Pods di navigator proyek Xcode di sebelah kiri. Pastikan folder tersebut berisi subfolder AliVCSDK_ARTC, yang menunjukkan bahwa dependensi SDK telah berhasil diintegrasikan.

Integrasi manual dengan mengunduh SDK

  1. Unduh dan ekstrak ARTC SDK terbaru dari bagian unduhan SDK.

  2. Salin file framework dari SDK yang diekstrak ke direktori proyek Anda.

  3. Buka proyek Anda di Xcode. Pilih File > Add Files to "xxx" untuk menambahkan file library SDK ke proyek.

  4. Pilih target dan atur atribut framework yang diimpor. Di bagian Frameworks, Libraries, and Embedded Content, pastikan kolom Embed untuk alivcffmpeg.framework dan AliVCSDK_ARTC.framework diatur ke Do Not Embed.

Langkah 2: Konfigurasikan izin

  • Tambahkan izin kamera dan mikrofon ke Info.plist: Privacy - Camera Usage Description dan Privacy - Microphone Usage Description.

  • (Opsional) Aktifkan audio latar belakang. Di kemampuan proyek, pilih Audio, AirPlay, and Picture in Picture.

Windows

Prasyarat

Persyaratan:

  • Visual Studio 2015 atau versi lebih baru.

  • Windows 7 atau versi lebih baru.

Langkah 1: Integrasikan SDK

  1. Unduh ARTC SDK terbaru dari bagian unduhan SDK.

  2. Ekstrak SDK dan salin semua file ke direktori proyek Anda.

  3. Konfigurasikan properti proyek:

    1. Di Solution Explorer, klik kanan proyek dan pilih Properties.

    2. Tambahkan direktori include: pilih Configuration Properties > C/C++ > General, lalu tambahkan path file header di bawah Additional Include Directories.

    3. Tambahkan direktori library: pilih Linker > General, lalu tambahkan path file library (.lib), misalnya .../x64/Release, di bawah Additional Library Directories.

Pemecahan Masalah

Isu umum dan solusinya:

Isu

Penyebab

Solusi

DLL load failed atau cannot open AliRTCSdk.lib

Path file .lib atau .dll tidak dikonfigurasi dengan benar dalam properti proyek.

Verifikasi bahwa path direktori library di Linker > General > Additional Library Directories mengarah ke folder yang benar berisi file .lib. Salin file .dll yang menyertainya ke direktori output aplikasi Anda atau ke PATH sistem.

Error ketidakcocokan arsitektur

Platform build proyek tidak sesuai dengan arsitektur biner SDK.

Pastikan platform build proyek diatur ke x64. ARTC SDK untuk Windows hanya menyediakan biner x64. Menggunakan konfigurasi x86 (32-bit) atau ARM akan menyebabkan error tautan.

Aplikasi crash atau gagal dimulai saat runtime

Library runtime Visual C++ Redistributable yang diperlukan tidak terinstal di mesin target.

Instal Visual C++ Redistributable terbaru di mesin deployment.

Mac

Prasyarat

Persyaratan:

  • Xcode 14.0 atau versi lebih baru (disarankan versi stabil terbaru).

  • macOS 10.13 atau versi lebih baru.

  • Koneksi jaringan yang stabil.

Langkah 1: Integrasikan SDK

ARTC SDK untuk Mac disediakan sebagai bundel library dinamis .framework (misalnya, AliRTCSdk.framework). Ini berbeda dari library bersama .so yang digunakan di Linux. Unduh paket SDK Mac dan jangan gunakan file .so dari paket Linux.

  1. Unduh dan ekstrak ARTC SDK terbaru dari bagian unduhan SDK.

  2. Salin bundel .framework dari paket SDK ke direktori proyek Anda. Lewati PluginAAC.framework jika Anda tidak menggunakan pengkodean audio AAC.

  3. Di Xcode, tambahkan library dinamis dan atur Embed ke Embed & Sign.

Pemecahan Masalah

Isu umum dan solusinya:

Isu

Penyebab

Solusi

Framework tidak ditemukan atau image not found saat runtime

Framework ditambahkan ke proyek tetapi properti Embed-nya tidak diatur dengan benar.

Di tab General target, atur properti Embed framework ARTC SDK ke Embed & Sign. Hal ini memastikan framework dibundel dengan aplikasi Anda dan ditandatangani kode dengan benar.

Error penandatanganan kode saat build

Identitas penandatanganan kode framework SDK bertentangan dengan konfigurasi penandatanganan aplikasi.

Di Build Settings target framework, atur Code Signing Identity ke Sign to Run Locally atau sesuaikan dengan identitas penandatanganan aplikasi. Pastikan ID tim konsisten di seluruh target.

Ketidakcocokan arsitektur pada Apple Silicon

Arsitektur biner SDK tidak sesuai dengan jenis prosesor Mac.

Untuk Mac berbasis Intel, pastikan arsitektur build proyek diatur ke x86_64. Untuk Mac Apple Silicon (M1/M2), gunakan arm64. Gunakan perintah lipo -info untuk memverifikasi arsitektur mana saja yang didukung oleh framework SDK.

FAQ

Apakah ARTC SDK menambahkan izin Android tambahan?

ARTC SDK secara otomatis mendeklarasikan izin Android berikut (daftar tepatnya dapat berbeda tergantung versi; periksa AndroidManifest.xml dalam file .aar):

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

Izin ini mendukung pemantauan jaringan, deteksi Wi-Fi, konektivitas Bluetooth, dan routing audio.

Bagaimana cara menangani kompatibilitas izin atau konflik dengan kode yang sudah ada?

ARTC SDK menangani kompatibilitas izin (misalnya, BLUETOOTH_CONNECT saat runtime pada Android 12+), tetapi isu dapat terjadi:

  • Anomali perilaku saat runtime, seperti kegagalan penggabungan manifest.

  • Risiko peninjauan Google Play: mendeklarasikan izin yang tidak digunakan (misalnya, Bluetooth) dapat melanggar prinsip hak istimewa minimal dan menyebabkan penolakan.

Untuk mengatasi isu ini:

  1. Nilai kebutuhan. Hapus izin yang tidak digunakan. Misalnya, jika targetSdk adalah 30 atau lebih rendah, hapus deklarasi BLUETOOTH_CONNECT.

  2. Atasi konflik penggabungan manifest. Jika modul mendeklarasikan atribut yang bertentangan (misalnya, nilai maxSdkVersion yang tidak konsisten), gunakan namespace tools dalam AndroidManifest.xml untuk menimpa:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools">
    
        <!-- Contoh: Hapus izin yang dideklarasikan oleh SDK tetapi tidak diperlukan aplikasi. -->
        <uses-permission
            android:name="android.permission.BLUETOOTH_CONNECT"
            tools:node="remove" />
    
        <!-- Contoh: Timpa atribut izin. -->
        <uses-permission
            android:name="android.permission.BLUETOOTH"
            android:maxSdkVersion="30"
            tools:replace="android:maxSdkVersion" />
    </manifest>

Kodek audio apa saja yang didukung oleh ARTC SDK?

ARTC SDK menggunakan Opus sebagai kodek audio default, diwariskan dari pipeline pemrosesan audio WebRTC.

Catatan

Fakta berikut dalam bagian ini telah diverifikasi terhadap dokumentasi sumber ARTC SDK:

  • Versi SDK terbaru: 7.11.0 (dirilis 8 April 2026) untuk platform Android dan iOS.

  • Koordinat Maven: com.aliyun.aio:AliVCSDK_ARTC. Nama pod CocoaPods: AliVCSDK_ARTC.

  • Kodek audio Opus: distandarisasi di bawah RFC 6716 (IETF), digunakan sebagai kodek default dan direkomendasikan untuk pipeline audio ARTC SDK.

Opus adalah kodek terbuka dan bebas royalti (RFC 6716) yang memberikan kualitas audio tinggi pada bitrate 6–510 kbps dengan latensi rendah. ARTC SDK menggunakan Opus untuk:

  • Pengkodean dan dekode audio real-time untuk panggilan satu lawan satu dan multipihak.

  • Bitrate adaptif berdasarkan kondisi jaringan.

  • Supresi noise bawaan dan kontrol gain otomatis (AGC).

Riwayat Rilis

Versi

Platform

Tanggal Rilis

Perubahan

v7.11.0

iOS, Android

8 April 2026

Perbaikan: Menyelesaikan isu stabilitas RTC.

v7.10.0

iOS, Android, Linux

10 Januari 2026

Perbaikan: Menyelesaikan isu stabilitas RTC.

v7.9.1

iOS, Android, Linux

4 Desember 2025

Optimasi: Mengurangi jumlah thread untuk meningkatkan kinerja RTC SDK. Menambahkan kemampuan preload ke RTC SDK. Perbaikan: Menyelesaikan isu stabilitas RTC.

v7.8.1

iOS, Android, Linux

12 November 2025

Optimasi: Meningkatkan pengalaman pengguna. Perbaikan: Menyelesaikan isu stabilitas RTC.

v7.8.0

iOS, Android, Linux, Mac

5 November 2025 (iOS/Android/Linux), 1 Desember 2025 (Mac)

Optimasi: Meningkatkan kinerja thread RTC. Perbaikan: Menyelesaikan isu stabilitas RTC.

v7.7.0

iOS, Android, Linux

31 Juli 2025

Baru: Menambahkan dukungan perekaman audio/video lokal dalam format MP4, AAC, dan WAV. Dukungan Android focus API untuk API 26 API baru, diaktifkan secara default. Optimasi: Menambahkan dukungan laju sampel 24 K untuk callback pemantauan audio data. Perbaikan: Menyelesaikan isu stabilitas RTC.

v7.6.0

iOS, Android, Linux, Windows, HarmonyOS

2 September 2025

Baru: Menambahkan daftar izin dan daftar blokir langganan audio/video. Dukungan berbagi layar Android 14. Optimasi: Mendukung konfigurasi penggunaan channel kanan untuk konversi resampling mono-ke-stereo. Memilih pengambilan sampel 16 K untuk skenario AI. Perbaikan: Menyelesaikan isu stabilitas.