このトピックでは、ApsaraVideo Real-time Communication (ARTC) の SDK (Software Development Kit) のダウンロードリンク、SDK の統合方法、およびその他の関連情報について説明します。
SDK の統合
Android
事前準備
ARTC SDK を統合する前に、ご利用の開発環境が次の要件を満たしていることを確認してください:
Android Studio 2020.3.1 以降。
Android 5.0 (API レベル 21) 以降を実行し、インターネットに接続されているテストデバイス。
ステップ 1: SDK のインポート
Maven を使用した自動統合 (推奨)
プロジェクトのルートディレクトリにある
settings.gradleファイルを開きます。ARTC SDK の Maven リポジトリをdependencyResolutionManagement/repositoriesフィールドに追加します。
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' }
}
}注意: 7.1.0 より前のバージョンの Android Gradle Plugin を使用している場合、settings.gradle ファイルに対応するフィールドが見つからないことがあります。詳細については、「Android Gradle Plugin 7.1」をご参照ください。この場合、代わりに次のソリューションを使用してください。
app/build.gradleファイルを開き、ARTC SDK の依存関係をdependenciesに追加します。バージョン番号は「SDK のダウンロード」セクションで確認できます。${latest_version}を特定のバージョン番号に置き換えてください。最新バージョンは 7.9.1 です。
dependencies {
// ApsaraVideo Real-time Communication 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ファイルを開きます。AAR ファイルを含むフォルダをdependencyResolutionManagement/repositoriesに追加します。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// ARTC SDK の相対パスを追加します。
flatDir {
dir 'app/libs'
}
}
}注意: 7.1.0 より前のバージョンの Android Gradle Plugin を使用している場合、settings.gradle ファイルに対応するフィールドが見つからないことがあります。詳細については、「Android Gradle Plugin 7.1」をご参照ください。この場合、代わりに次のソリューションを使用してください。
プロジェクトのルートディレクトリにある build.gradle ファイルを開きます。次のフィールドを allprojects/repositories に追加します。
allprojects {
repositories {
...
// ARTC SDK の相対パスを追加します。
flatDir {
dir 'app/libs'
}
}
}app/build.gradleファイルを開き、AAR ファイルの依存関係をdependenciesに追加します。
// x.y.z を対応するバージョン番号に置き換えます。
implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')ビルドが完了すると、External Libraries の下に該当する依存関係が生成されます。

ステップ 2: サポートする 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"
}
}
} ステップ 3: 権限の設定
アプリケーションに必要な権限を設定します。
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" />
<!-- 古いデバイスで従来の Bluetooth 権限をリクエストします。 -->
<uses-permission
android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<!-- アプリが既にペアリング済みの Bluetooth デバイスと通信する場合にのみ必要です。 -->
<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 権限の動的なリクエスト
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"/>以下は Bluetooth 権限に関する具体的な情報です:
シナリオ 1: Bluetooth 機能が必要な場合
アプリの targetSdk が 31 未満の場合
プロジェクトの targetSdk が 31 未満の場合、Bluetooth 機能は従来の BLUETOOTH 権限によって制御されます。メインアプリケーションで以下の宣言を行うことができます。
<!-- Bluetooth 権限を宣言します。 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- API 31+ の権限をオーバーライドして削除します。 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />SDK には
BLUETOOTH_CONNECT権限の宣言が含まれています。この権限は Android 12 (API 31) で導入され、実行時にrequestPermissionsを使用して動的にリクエストする必要があります。一部のデバイスでは、アプリケーションが
BLUETOOTH_CONNECTの宣言を含んでいる場合、アプリケーションはこの権限を動的にリクエストする必要があります。そうしないと、SecurityExceptionが発生する可能性があります。この問題が発生した場合は、次のいずれかの方法を使用できます:方法 1: tools:node="remove" を使用して権限宣言を削除します。
方法 2: 権限を動的にリクエストします。
アプリの targetSdk が 31 以上の場合
プロジェクトの targetSdk が 31 以上の場合、従来の Bluetooth 権限と新しい Bluetooth 権限の両方を考慮する必要があります。メインアプリケーションの AndroidManifest.xml ファイルで権限を宣言できます。
<!-- Bluetooth 権限を宣言し、以前のデバイスバージョンとの互換性のために android:maxSdkVersion を 30 に設定します。 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- API 31+ の Bluetooth 権限を宣言します。 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- その他の Bluetooth 権限。 -->BLUETOOTH_CONNECT は動的な権限であるため、実行時にリクエストする必要があります。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
String[] permissions = {
android.Manifest.permission.BLUETOOTH_CONNECT
};
ActivityCompat.requestPermissions(activity, permissions, REQUEST_BLUETOOTH);
}シナリオ 2: Bluetooth 機能が不要な場合
Bluetooth 権限に関連するクラッシュやポップアッププロンプトを防ぐために、不要な Bluetooth 権限を削除することを推奨します。
メインプロジェクトの AndroidManifest.xml ファイルで、tools:node="remove" を使用して権限をオーバーライドし、削除することができます。
<!-- ARTC SDK からの Bluetooth 権限宣言をオーバーライドして削除します。 -->
<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 レベル 31) 以降の場合、以下の権限も動的にリクエストする必要があります:
Manifest.permission.BLUETOOTH_CONNECT
以下は、関連する可能性のある権限の一部です:
権限名 | 権限の説明 | リクエストの理由 | 必要性 | 動的な権限か? |
| カメラの権限。 | ビデオストリームをキャプチャするためにデバイスのカメラにアクセスします。 | はい | Android >= 6.0 |
| マイクの権限。 | オーディオストリームをキャプチャするためにデバイスのマイクにアクセスします。 | はい | Android >= 6.0 |
| ネットワークの権限。 | ネットワーク経由で音声および映像データを送信します (例: WebRTC の使用)。 | はい | いいえ |
| アプリケーションがネットワーク状態を取得できるようにします。 | ネットワーク接続状態を監視して、音声および映像の伝送品質を最適化します (例: ネットワーク中断後の再接続)。 | 必要に応じて | いいえ |
| アプリケーションが Wi-Fi 状態を取得できるようにします。 | 現在の Wi-Fi 接続情報を取得して、ネットワークパフォーマンスを最適化します。 | 必要に応じて | いいえ |
| アプリケーションがオーディオ設定を変更できるようにします。 | システムボリュームの調整、オーディオ出力デバイスの切り替え、およびその他の関連操作を実行します。 | 必要に応じて | いいえ |
| Bluetooth 権限 (基本機能) | Bluetooth ヘッドセットなどの Bluetooth デバイスに接続します。 | 必要に応じて | いいえ |
| Bluetooth 接続権限 | ペアリング済みの Bluetooth デバイスと通信します (例: オーディオのストリーミング)。 | 必要に応じて | android >= 12 |
| アプリケーションがデバイスの電話状態に関する情報にアクセスできるようにします | 電話の状態に基づいてオーディオを開始または停止します。 | 必要に応じて | android >= 6.0 |
| アプリケーションが外部ストレージからファイルを読み取れるようにします。 | ローカル音楽の再生やその他の関連操作を実行します。 | 必要に応じて | android >= 6.0 |
| アプリケーションが外部ストレージに書き込めるようにします。 | 音声および映像ファイル、ログ、その他のデータを保存します。 | 必要に応じて | android >= 6.0 |
ステップ 4: コードの難読化の防止 (任意)
app/proguard-rules.pro ファイルで、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 情報の取得、Bluetooth 接続、オーディオルーティングなどの機能をサポートするために使用されます。
SDK の権限と既存のコードとの間の互換性または競合の問題を処理する方法
ARTC SDK は権限に関してさまざまな Android バージョンに対応していますが、問題が発生する可能性があります。たとえば、Android 12 (API 31) 以降の BLUETOOTH_CONNECT の実行時権限要件は通常コンパイルエラーを引き起こしませんが、次のシナリオで問題が発生する可能性があります:
マニフェストのマージ失敗などの異常な実行時動作。
Google Play の審査リスク:アプリケーションが使用しない機能 (Bluetooth など) の権限を宣言している場合、最小権限の原則に違反し、アプリケーションの掲載が拒否される可能性があります。
互換性の問題を処理するために、次の対策を講じることを推奨します:
権限の必要性の評価
まず、アプリケーションが SDK が宣言するすべての権限を必要とするかどうかを評価する必要があります。Bluetooth などの特定の機能が使用されない場合は、対応する権限宣言を削除することを検討する必要があります。たとえば、アプリケーションが Android API 30 以下のデバイスでのみ実行される場合は、BLUETOOTH_CONNECT権限宣言を削除できます。マニフェストのマージディレクティブを使用して競合を解決する
複数のモジュールが同じ権限を異なる属性 (一貫性のない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 以降を実行する物理デバイス。
ステップ 1: SDK のインポート
CocoaPods を使用した自動統合 (推奨)
ターミナルを開き、開発デバイスに CocoaPods ツールをインストールします。CocoaPods が既にインストールされている場合は、このステップをスキップできます。
sudo gem install cocoapodsターミナルを開き、プロジェクトのルートディレクトリに移動して、次のコマンドを実行して Podfile を作成します。
pod init生成された Podfile を開いて編集し、ARTC 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 パッケージからフレームワークファイルをプロジェクトディレクトリにコピーします。
Xcode でプロジェクトを開き、メニューから
File -> Add Files to "xxx"を選択し、SDK ライブラリファイルをプロジェクトに追加します。
ターゲットを選択し、インポートしたフレームワークファイルを
"Embed & Sign"に設定します。

ステップ 2: 権限の設定
カメラとマイクの権限を追加する必要があります。
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 ファイルを解凍し、ディレクトリからプロジェクトにファイルをコピーします。
プロジェクトのプロパティを設定します:
ソリューションエクスプローラーウィンドウで、プロジェクトを右クリックし、プロパティを選択します。
インクルードディレクトリを追加します:[構成プロパティ] → [C/C++] → [全般] に移動します。[追加のインクルード ディレクトリ] に、ヘッダーファイルのパスを追加します。
ライブラリディレクトリを追加します:プロパティウィンドウで、[構成プロパティ] → [リンカー] → [全般] に移動します。[追加のライブラリ ディレクトリ] に、ライブラリファイル (.lib) のパス (例:
.../x64/Release) を追加します。リンクライブラリファイルを指定します:プロパティウィンドウで、[構成プロパティ] → [リンカー] → [入力] に移動します。[追加の依存ファイル] に、リンクするライブラリファイルの名前「AliRTCSdk.lib」を追加します。
Mac
事前準備
ARTC SDK を統合する前に、ご利用の開発環境が次の要件を満たしていることを確認してください:
開発ツール:Xcode 14.0 以降。最新の公式バージョンを使用することを推奨します。
テストデバイス:macOS 10.13 以降を実行する Mac デバイス。
ネットワーク環境:安定したネットワーク接続が必要です。
アプリケーションの準備:ApsaraVideo Real-time Communication アプリケーションの 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 |