本文提供即時音視頻原子ARTC SDK下載連結,介紹如何整合SDK,以及SDK相關資訊。
SDK整合
Android
環境準備
在整合 ARTC SDK 之前,請確保滿足如下開發環境:
Android Studio 2020.3.1 及以上版本。
Android 5.0(SDK API Level 21)及以上版本的測試裝置,且需要串連網路環境。
步驟一:匯入SDK
Maven自動整合(推薦)
開啟專案根目錄下的
settings.gradle檔案,在dependencyResolutionManagement/repositories欄位中添加 ARTC SDK 所需的Maven地址,如下所示:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// 添加ARTC SDK所在的Maven地址
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/public' }
}
}注意,如果您使用的 Android Gradle Plugin 版本低於 7.1.0,可能無法在settings.gradle檔案中找到對應欄位,相關資訊請參考Android Gradle 外掛程式 7.1。此時,請採用如下方案作為替換:
開啟
app/build.gradle檔案,在dependencies中添加對 ARTC SDK 的依賴,你可以在SDK下載中擷取版本資訊,並將${latest_version}替換為具體版本號碼,最新版本7.10.0。
dependencies {
// 引入即時音視頻SDK依賴
// ${latest_version}替換為具體版本號碼
implementation 'com.aliyun.aio:AliVCSDK_ARTC:${latest_version}'
// 7.4.0及以下版本需添加keep
// implementation 'com.aliyun.aio.keep:keep:1.0.1'
}如果使用的 Android Gradle Plugin 為 8.1 以上版本,Android Studio 推薦將依賴庫資訊遷移到版本目錄,相關資訊請參考遷移依賴專案到版本目錄。
下載SDK手動整合
在SDK下載中下載所需版本的 ARTC SDK aar 檔案,最新版本7.10.0,例如
AliVCSDK_ARTC-x.y.z.aar。將下載的 aar 檔案拷貝到您的專案目錄下,例如
app/libs,如果沒有該檔案夾則建立。開啟專案根目錄下的
settings.gradle檔案,在dependencyResolutionManagement/repositories下添加 aar 所在檔案夾,如下所示:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// 添加ARTC SDK所在位置的相對目錄
flatDir {
dir 'app/libs'
}
}
}注意,如果您使用的 Android Gradle Plugin 版本低於 7.1.0,可能無法在settings.gradle檔案中找到對應欄位,相關資訊請參考Android Gradle 外掛程式 7.1。此時,請採用如下方案作為替換:
開啟專案根目錄下的build.gradle檔案,在allprojects/repositories中添加如下欄位:
allprojects {
repositories {
...
// 添加ARTC SDK所在位置的相對目錄
flatDir {
dir 'app/libs'
}
}
}開啟
app/build.gradle檔案,在dependencies下添加 aar 檔案的依賴,如下所示:
//x.y.z替換為對應版本號碼
implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')構建後即可在 External Libraries 下產生對應依賴。

步驟二:設定項目支援的 CPU 架構
開啟app/build.gradle檔案,在defaultConfig中指定專案支援的 CPU 架構,如下所示。可選架構包括armeabi-v7a、arm64-v8a、x86、x86_64,根據實際需要進行配置。
android {
defaultConfig {
// ...其他預設配置
// 支援 armeabi-v7a 和 arm64-v8a 架構
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
} 步驟三:設定許可權
根據實際需求設定應用所需的許可權,具體流程如下:
進入app/src/main目錄,開啟AndroidManifest.xml檔案,添加要求的權限。
<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" />藍芽許可權動態申請說明
ARTC SDK 內部 AndroidManifest.xml 中內建了部分許可權的聲明(對於動態許可權內部沒有申請的邏輯),其中 BLUETOOTH_CONNECT 許可權為 Android 12 開始引入的動態許可權。匯入 ARTC SDK 後下面的許可權會自動引入到 APK 中,但是仍推薦根據您的業務情境自行申請許可權。
<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" />根據您的業務情境,如果不需要下面的某項許可權,可以在您的主專案 AndroidManifest.xml 檔案中聲明移除:
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove"/>特別針對藍芽許可權:
情境一: 需要藍芽功能
應用targetSdk < 31
當您的專案 targetSdk < 31 時,藍芽功能由低版本許可權 BLUETOOTH 控制。可以在您的主應用中聲明:
<!-- 聲明藍芽許可權 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- 覆蓋移除高版本API 31+ 許可權 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />SDK 中會內建
BLUETOOTH_CONNECT許可權的聲明,而BLUETOOTH_CONNECT是Android 12(API 31)引入的許可權,需要在運行時通過requestPermissions動態申請。部分裝置上應用如果包含
BLUETOOTH_CONNECT的聲明則要求動態申請該許可權,否則可能出現SecurityException異常,如果出現此類問題:方式一:通過 tools:node="remove"移除該許可權聲明。
方式二:動態申請該許可權。
應用targetSdk >= 31
當您的專案 targetSdk >= 31 時,則需要考慮低版本和高版本的藍芽許可權。可在您的主應用AndroidManifest.xml中聲明許可權:
<!-- 聲明藍芽許可權並設定android:maxSdkVersion為30以相容更低版本裝置 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- 聲明高版本API 31+ 藍芽許可權 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- 其他藍芽許可權 -->同時,由於BLUETOOTH_CONNECT為動態許可權,需要在運行時主動申請許可權:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
String[] permissions = {
android.Manifest.permission.BLUETOOTH_CONNECT
};
ActivityCompat.requestPermissions(activity, permissions, REQUEST_BLUETOOTH);
}情境二: 完全不需要藍芽功能
為了避免因藍芽許可權引發崩潰或彈窗提示,推薦移除不必要的藍芽許可權。
操作步驟:在主專案的AndroidManifest.xml中通過tools:node="remove"覆蓋移除許可權:
<!-- 覆蓋移除ARTC SDK中內建的藍芽許可權聲明 -->
<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />其他許可權動態申請說明
Android 6.0(API 23)之後危險許可權需要動態申請,除了在AndroidManifest.xml檔案中靜態申請外,還需要在代碼運行時請求許可權。
其中部分許可權需要動態申請, 需要動態申請的許可權包含:
Manifest.permission.CAMERA
Manifest.permission.WRITE_EXTERNAL_STORAGE
Manifest.permission.RECORD_AUDIO
Manifest.permission.READ_EXTERNAL_STORAGE
Manifest.permission.READ_PHONE_STATE
當Android系統版本>=12(API_LEVEL>=31) 時, 需要額外動態申請以下許可權:
Manifest.permission.BLUETOOTH_CONNECT
可能涉及到的部分許可權說明如下:
許可權名 | 許可權說明 | 申請原因 | 必要性 | 是否動態許可權 |
| 網路攝影機許可權。 | 訪問裝置網路攝影機以採集視頻流。 | 是 | Android >= 6.0 |
| 麥克風許可權。 | 訪問裝置麥克風以採集音頻流。 | 是 | Android >= 6.0 |
| 網路許可權。 | 音視頻資料通過網路傳輸(如 WebRTC等協議)。 | 是 | 否 |
| 允許應用擷取網路狀態。 | 監控網路連接狀態以最佳化音視頻傳輸品質,例如斷網重連。 | 按需 | 否 |
| 允許應用擷取 WiFi 狀態。 | 擷取當前 WiFi 串連資訊以最佳化網路效能。 | 按需 | 否 |
| 允許應用修改音頻配置。 | 調整系統音量、切換音訊輸出裝置等。 | 按需 | 否 |
| 藍芽許可權(基礎功能) | 串連藍牙裝置(如藍芽耳機)。 | 按需 | 否 |
| 藍芽串連許可權 | 與已配對的藍牙裝置進行通訊(如傳輸音頻流)。 | 按需 | android >= 12 |
| 允許應用訪問與裝置電話狀態相關的資訊 | 根據電話狀態啟停音頻。 | 按需 | android >= 6.0 |
| 允許應用讀取外部儲存中的檔案。 | 播放本地音樂等。 | 按需 | android >= 6.0 |
| 允許應用寫入外部儲存。 | 儲存音視頻檔案、日誌等。 | 按需 | android >= 6.0 |
步驟四:防止混淆代碼(可選)
在app/proguard-rules.pro檔案中,為 SDK 配置規則,防止 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.** {
*;
}常見問題
ARTC SDK 是否會引入額外許可權?
匯入 ARTC SDK 後,會自動聲明以下 Android 許可權(具體列表可能因 SDK 版本而異,請以所整合的 .aar 檔案中 AndroidManifest.xml 的內容為準):
<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" />這些許可權主要用於支援網路狀態檢測、Wi-Fi 資訊擷取、藍芽串連及音頻路由等功能。
如何處理 SDK 許可權與現有代碼的相容性或衝突問題?
儘管 ARTC SDK 內部已對許可權進行了 Android 版本適配(例如針對 BLUETOOTH_CONNECT 在 Android 12+ (API 31)的運行時許可權要求),通常不會導致編譯錯誤,但仍可能在以下情境中引發問題:
運行時行為異常:如Manifest 合并失敗;
Google Play 審核風險:若應用實際未使用某項功能卻聲明了相關許可權(如藍芽),可能違反最小許可權原則,導致上架被拒。
建議採取以下措施進行相容性處理:
評估許可權必要性
首先評估你的應用是否確實需要 SDK 聲明的所有許可權。若某些功能(如藍芽)未被使用,可考慮移除對應許可權聲明,例如您的程式僅在 Android API 30 及以下裝置上運行(targetSdk 版本為 30 以下時,可以移除BLUETOOTH_CONNECT許可權的聲明)。通過 Manifest 合并指令解決衝突
若多個模組對同一許可權聲明了不同屬性(例如maxSdkVersion不一致),可在主AndroidManifest.xml中使用tools命名空間進行幹預:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- 樣本:移除 SDK 中聲明但應用不需要的許可權 --> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" /> <!-- 樣本:覆蓋許可權屬性 --> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" tools:replace="android:maxSdkVersion" /> </manifest>
iOS
環境準備
在開始整合 ARTC SDK 之前,請確保開發環境滿足以下要求:
Xcode 14.0 及以上版本,推薦使用最新正式版本。
CocoaPods 1.9.3 及以上版本。
準備 iOS 9.0 及以上版本的真機。
步驟一:匯入SDK
CocoaPods 自動整合(推薦)
開啟終端,在您的開發裝置上安裝 CocoaPods 工具,如果您已經完成安裝,可以跳過此步驟。
sudo gem install cocoapods開啟終端,進入專案根目錄,在終端視窗中輸入以下命令,建立 Podfile 檔案。
pod init開啟並編輯產生的 Podfile檔案,添加RTC SDK依賴,最新版本7.10.0。
target 'MyApp' do
use_frameworks!
# 將${latest version}替換為具體的版本號碼
pod 'AliVCSDK_ARTC', '~> ${latest version}'
end在終端視窗中輸入以下命令更新專案中的CocoaPods依賴庫。
pod install成功執行後,專案檔夾下將產生一個尾碼為
.xcworkspace的工程檔案,雙擊該檔案通過 Xcode開啟專案即可載入工作區自動整合 CocoaPods 依賴。
下載SDK手動整合
在SDK下載中,擷取最新的 ARTC SDK 檔案並解壓。
將解壓後的 SDK 包內的 framework 檔案拷貝到專案目錄下。
使用 Xcode 開啟專案,選擇
File -> Add Files to "xxx",菜單,添加 SDK 的庫檔案到專案。
選擇目標,將匯入的 framework 檔案設定為
"Embed & Sign"。

步驟二:設定許可權
務必添加錄音許可權和相機許可權
在Info.plist檔案中添加網路攝影機和麥克風許可權Privacy - Camera Usage Description、Privacy - Microphone Usage Description。

開啟音頻後台採集模式(可選)。
如圖所示,勾選Audio,AirPlay,and Picture in Picture即可。

Windows
環境準備
在開始整合 ARTC SDK 之前,請確保開發環境滿足以下要求:
Visual Studio 2015 或以上版本。
WIndows 7 或以上版本。
整合SDK
在SDK下載,擷取最新的 ARTC SDK 檔案。
解壓 ARTC SDK 檔案,並將目錄下的檔案拷貝到您的專案中。
設定項目屬性:
在方案總管視窗中,按右鍵專案,進入“屬性”介面。
添加包含目錄:選擇配置屬性(Configuration Properties) → C/C++ → 常規(General),在附加元件封裝含目錄(Additional Include Directories)中添加標頭檔路徑。
添加庫目錄:在 Properties 視窗中,選擇配置屬性(Configuration Properties) → 連結器( Linker)→ 常規(General),在附加庫目錄( Additional Library Directories) 中添加庫檔案(.lib)的路徑,例如
.../x64/Release。指定連結庫檔案:在 Properties 視窗中,選擇配置屬性(Configuration Properties)→ 連結器( Linker)→ 輸入(Input),在附加依賴項(Additional Dependencies)中添加需要連結的庫檔案名稱“AliRTCSdk.lib”。
Mac
環境準備
在開始整合 ARTC SDK 之前,請確保開發環境滿足以下要求:
開發工具:Xcode 14.0 及以上版本,推薦使用最新正式版本。
測試裝置:Mac 10.13 及以上版本的Mac裝置。
網路環境:需要穩定的網路連接。
應用準備:擷取即時音視頻應用的AppID和AppKey,詳情請參見建立應用。
下載SDK手動整合
在SDK下載中,擷取最新的 ARTC SDK 檔案並解壓。
將 SDK 包內的檔案,拷貝到你的專案路徑下,如果不使用aac做音頻編碼,可以不添加PluginAAC.framework。
開啟 Xcode,添加對應動態庫,確保添加的動態庫 Embed 屬性設定為 Embed & Sign。
發布歷史
版本號碼 | 平台 | 更新日期 | 修改內容 |
v7.10.0 | iOS | 2026-01-10 |
|
Android | |||
v7.9.1 | iOS | 2025-12-04 |
|
Android | |||
v7.8.1 | iOS | 2025-11-12 |
|
Android | |||
v7.8.0 | iOS | 2025-11-05 |
|
Android | |||
Mac | 2025-12-01 | ||
v7.7.0 | iOS | 2025-09-30 |
|
Android | |||
v7.6.0 | iOS | 2025-09-02 |
|
Android | |||
Windows | |||
V7.5.0 | iOS | 2025-07-31 |
|
Android | |||
v7.4.0 | iOS | 2025-07-01 |
|
Android | |||
v7.3.0 | iOS | 2025-05-30 |
|
Android | |||
v7.2.1 | Windows | 2025-05-12 |
|
v7.2.0 | iOS | 2025-04-28 |
|
Android | |||
v7.1.0 | iOS | 2025-04-01 |
|
Android | 2025-04-01 | ||
v7.0.0 | iOS | 2025-02-28 |
|
Android | |||
Windows | 2025-03-31 |
| |
v6.21.0 | iOS | 2025-01-22 |
|
Android | |||
v6.20.0 | iOS | 2024-12-30 |
|
Android | |||
v6.19.0 | iOS | 2024-12-20 |
|
Android | |||
v6.18.0 | iOS | 2024-12-09 |
|
Android | |||
v6.17.0 | iOS | 2024-11-04 |
|
Android | |||
v6.15.0 | iOS | 2024-09-24 |
|
Android | |||
Windows |
| ||
v6.11.3 | iOS | 2024-09-14 | 針對AI+RTC情境,提供聊天室的AudioProfile,保證歡迎語完整播報。 |
Android | 2024-09-14 | ||
v6.11.2 | iOS | 2024-08-16 |
|
Android | |||
v6.8.7 | iOS | 2024-06-03 |
|
Android | |||
v6.8.5 | iOS | 2024-04-01 |
|
Android | |||
v6.8.2 | iOS | 2024-03-04 |
|
Android | |||
v6.8.1 | Windows | 2024-03-19 |
|
v6.4.3 | iOS | 2023-12-04 |
|
Android |