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)
Buka file
settings.gradledi direktori root proyek. Tambahkan repositori Maven ARTC SDK di bawah blokdependencyResolutionManagement/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' } } }CatatanJika versi Android Gradle Plugin (AGP) Anda lebih rendah dari 7.1.0, file
settings.gradlemungkin tidak berisi blokdependencyResolutionManagement, 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.gradledi direktori root proyek Anda. Tambahkan repositori Maven di bawahallprojects/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' } } }Buka
app/build.gradle. Tambahkan dependensi ARTC SDK di bawah blokdependencies. 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
Unduh file AAR ARTC SDK dari bagian unduhan SDK. Versi terbaru adalah 7.11.0. Format nama file:
AliVCSDK_ARTC-x.y.z.aar.Salin file AAR ke direktori proyek Anda (misalnya,
app/libs). Buat direktori tersebut jika diperlukan.Buka
settings.gradledi direktori root proyek. Tambahkan direktori file AAR di bawahdependencyResolutionManagement/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/repositoriesdalambuild.gradle:allprojects { repositories { ... // Tambahkan path relatif ke file AAR ARTC SDK. flatDir { dir 'app/libs' } } }Buka
app/build.gradle. Tambahkan dependensi AAR di bawahdependencies:// Ganti x.y.z dengan nomor versi aktual. implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')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" />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.CAMERAManifest.permission.WRITE_EXTERNAL_STORAGEManifest.permission.RECORD_AUDIOManifest.permission.READ_EXTERNAL_STORAGEManifest.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)
Instal CocoaPods jika belum terinstal:
sudo gem install cocoapodsBuka direktori root proyek dan buat Podfile:
pod initBuka file
Podfiledan 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}' endInstal dependensi:
pod installFile
.xcworkspaceakan 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
Unduh dan ekstrak ARTC SDK terbaru dari bagian unduhan SDK.
Salin file framework dari SDK yang diekstrak ke direktori proyek Anda.
Buka proyek Anda di Xcode. Pilih File > Add Files to "xxx" untuk menambahkan file library SDK ke proyek.
Pilih target dan atur atribut framework yang diimpor. Di bagian Frameworks, Libraries, and Embedded Content, pastikan kolom Embed untuk
alivcffmpeg.frameworkdanAliVCSDK_ARTC.frameworkdiatur 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
Unduh ARTC SDK terbaru dari bagian unduhan SDK.
Ekstrak SDK dan salin semua file ke direktori proyek Anda.
Konfigurasikan properti proyek:
Di Solution Explorer, klik kanan proyek dan pilih Properties.
Tambahkan direktori include: pilih Configuration Properties > C/C++ > General, lalu tambahkan path file header di bawah Additional Include Directories.
Tambahkan direktori library: pilih Linker > General, lalu tambahkan path file library (
.lib), misalnya.../x64/Release, di bawah Additional Library Directories.Tentukan file library yang ditautkan: pilih Linker > Input, lalu tambahkan
AliRTCSdk.libdi bawah Additional Dependencies.
Pemecahan Masalah
Isu umum dan solusinya:
Isu | Penyebab | Solusi |
| Path file | Verifikasi bahwa path direktori library di Linker > General > Additional Library Directories mengarah ke folder yang benar berisi file |
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 |
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.
Unduh dan ekstrak ARTC SDK terbaru dari bagian unduhan SDK.
Salin bundel
.frameworkdari paket SDK ke direktori proyek Anda. LewatiPluginAAC.frameworkjika Anda tidak menggunakan pengkodean audio AAC.Di Xcode, tambahkan library dinamis dan atur Embed ke Embed & Sign.
Pemecahan Masalah
Isu umum dan solusinya:
Isu | Penyebab | Solusi |
Framework tidak ditemukan atau | 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 |
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:
Nilai kebutuhan. Hapus izin yang tidak digunakan. Misalnya, jika targetSdk adalah 30 atau lebih rendah, hapus deklarasi
BLUETOOTH_CONNECT.Atasi konflik penggabungan manifest. Jika modul mendeklarasikan atribut yang bertentangan (misalnya, nilai
maxSdkVersionyang tidak konsisten), gunakan namespacetoolsdalamAndroidManifest.xmluntuk 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.
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. |