Android、iOS、Windows、Mac、Linux、および HarmonyOS で ARTC SDK をダウンロードしてインテグレーションします。
SDK のダウンロード
開発者:Alibaba Cloud Computing Co., Ltd.
プラットフォーム | SDK バージョン | リリース日 | パッケージサイズ |
Android | v7.11.0 | 2026年4月8日 | 6.0 MB (arm64) |
iOS | v7.11.0 | 2026年4月8日 | 6.5 MB (arm64) |
Linux | v7.10.0 | 2026年1月10日 | - |
Windows | v7.6.0 | 2025年9月2日 | - |
HarmonyOS | v7.9.1 | 2025年12月4日 | 7.96 MB |
Mac | v7.8.0 | 2025年12月1日 | - |
Web へのインテグレーションについては、「ARTC Web SDK クイックスタート」ガイドをご参照ください。
SDK のインテグレーション
サポートされている各プラットフォームに ARTC SDK をインテグレーションします。プラットフォーム間で一貫した SDK バージョンを使用してください。
Android
前提条件
要件:
Android Studio 2020.3.1 以降。
Android 5.0 (SDK API レベル 21) 以降が動作し、ネットワークに接続されたテストデバイス。
ステップ 1: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 Release Notes に記載されているように、Android Gradle Plugin (AGP) のバージョンが 7.1.0 未満の場合、
settings.gradleファイルにdependencyResolutionManagementブロックが含まれていないことがあります。その場合は、代わりに次のアプローチを使用してください。AGP バージョン 7.1.0 未満
プロジェクトのルートディレクトリにある
build.gradleファイルを開きます。allprojects/repositoriesの下に Maven リポジトリを追加します。allprojects { repositories { ... // ARTC SDK の Maven リポジトリを追加します。 maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } } }app/build.gradleを開き、dependenciesの下に ARTC SDK の依存関係を追加します。\${latest_version}を実際のバージョン番号に置き換えてください。最新バージョンは 7.11.0 です。dependencies { // ARTC SDK の依存関係を追加します。 // ${latest_version} を実際のバージョン番号に置き換えてください。 implementation 'com.aliyun.aio:AliVCSDK_ARTC:${latest_version}' // バージョン 7.4.0 以前の場合は、keep 依存関係も追加します。 // implementation 'com.aliyun.aio.keep:keep:1.0.1' }AGP 8.1 以降では、バージョンカタログへの移行をご検討ください。バージョンカタログへの依存関係の移行
SDK のダウンロードと手動インテグレーション
「SDK のダウンロード」セクションから ARTC SDK の AAR ファイルをダウンロードします。最新バージョンは 7.11.0 です。ファイル名の形式:
AliVCSDK_ARTC-x.y.z.aarAAR ファイルをプロジェクトディレクトリ (例:
app/libs) にコピーします。必要に応じてディレクトリを作成してください。プロジェクトルートにある
settings.gradleを開き、dependencyResolutionManagement/repositoriesの下に AAR ファイルのディレクトリを追加します。dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() // ARTC SDK AAR ファイルへの相対パスを追加します。 flatDir { dir 'app/libs' } } }AGP バージョン 7.1.0 未満の場合は、
build.gradleのallprojects/repositoriesに以下を追加します。allprojects { repositories { ... // ARTC SDK AAR ファイルへの相対パスを追加します。 flatDir { dir 'app/libs' } } }app/build.gradleを開き、dependenciesの下に AAR 依存関係を追加します。// x.y.z を実際のバージョン番号に置き換えてください。 implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')ビルド後、依存関係は 外部ライブラリ の下に表示されます。
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.11.0@aar > Gradle: androidx.activity:activity:1.8.0@aar
ステップ 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:権限の設定
AndroidManifest.xml (app/src/main) に、必要な権限を追加します。
<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 には、これらの権限がバンドルされています。Android 12 以降、BLUETOOTH_CONNECT には実行時のリクエストが必要です:
<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" />アプリが Bluetooth を必要としない場合は、AndroidManifest.xml から宣言を削除します。
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove"/>シナリオ 1:Bluetooth 機能が必要な場合
アプリケーションの targetSdk が 31 未満の場合
targetSdk が 31 未満の場合、従来の BLUETOOTH 権限が Bluetooth を制御します。以下を宣言してください。
<!-- Bluetooth 権限を宣言します。 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- API 31以降で必要な BLUETOOTH_CONNECT 権限を削除します。 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />SDK は BLUETOOTH_CONNECT (Android 12、API 31) を宣言しており、これには requestPermissions によるランタイムリクエストが必要です。一部のデバイスでは、動的リクエストなしで BLUETOOTH_CONNECT を宣言すると SecurityException が発生します。解決策:
tools:node="remove"を使用して権限宣言を削除する。ランタイムで権限を動的にリクエストする。
アプリケーションの targetSdk が 31 以上の場合
targetSdk が 31 以上の場合は、AndroidManifest.xml で従来と最新の両方の Bluetooth 権限を宣言します。
<!-- 下位互換性のために android:maxSdkVersion を 30 に設定して Bluetooth 権限を宣言します。 -->
<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 宣言を削除します。
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.CAMERAManifest.permission.WRITE_EXTERNAL_STORAGEManifest.permission.RECORD_AUDIOManifest.permission.READ_EXTERNAL_STORAGEManifest.permission.READ_PHONE_STATE
Android 12 (API 31) 以降では、この権限もランタイムでリクエストしてください。
Manifest.permission.BLUETOOTH_CONNECT
権限 | 説明 | 理由 | 必須 | 動的 |
CAMERA | カメラへのアクセス権限 | デバイスのカメラからビデオストリームをキャプチャする | 必須 | Android 6.0 以降 |
RECORD_AUDIO | マイクへのアクセス権限 | デバイスのマイクからオーディオストリームをキャプチャする | 必須 | Android 6.0 以降 |
INTERNET | ネットワークへのアクセス権限 | ネットワーク経由で音声/映像データを送信する (例:WebRTC プロトコル) | 必須 | いいえ |
ACCESS_NETWORK_STATE | ネットワーク状態へのアクセス | ネットワーク接続を監視して音声/映像の品質を最適化する (例:ネットワーク切断時の再接続) | 任意 | いいえ |
ACCESS_WIFI_STATE | Wi-Fi 状態へのアクセス | 現在の Wi-Fi 接続情報を取得してネットワークパフォーマンスを最適化する | 任意 | いいえ |
BLUETOOTH | 基本的な Bluetooth 権限 | Bluetooth デバイス (例:Bluetooth ヘッドセット) に接続する | 任意 | いいえ |
BLUETOOTH_CONNECT | Bluetooth 接続権限 | ペアリング済みの Bluetooth デバイスと通信する (例:音声ストリーミング) | 任意 | Android 12 以降 |
READ_PHONE_STATE | 電話状態へのアクセス | 電話の状態 (例:着信) に応じて音声を開始または停止する | 任意 | Android 6.0 以降 |
READ_EXTERNAL_STORAGE | 外部ストレージの読み取りアクセス | ローカルの音楽やその他のファイルを再生する | 任意 | Android 6.0 以降 |
WRITE_EXTERNAL_STORAGE | 外部ストレージの書き込みアクセス | 音声/映像ファイル、ログ、その他のデータを保存する | 任意 | Android 6.0 以降 |
ステップ 4:難読化の防止 (オプション)
SDK コードが難読化されないように、次のルールを app/proguard-rules.pro に追加します。
-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
前提条件
要件:
Xcode 14.0 以降 (最新の安定バージョンの使用を推奨します)。
CocoaPods 1.9.3 以降。
iOS 9.0 以降を搭載した物理デバイス。
ステップ 1:SDK のインポート
CocoaPods 自動インテグレーション (推奨)
CocoaPods がまだインストールされていない場合は、インストールします。
sudo gem install cocoapodsプロジェクトルートに移動し、Podfile を作成します。
pod initPodfileを開き、ARTC SDK の依存関係を追加します。最新バージョンは 7.11.0 です。target 'MyApp' do use_frameworks! # ${latest version} を実際のバージョン番号に置き換えてください。 pod 'AliVCSDK_ARTC', '~> ${latest version}' end依存関係をインストールします。
pod install.xcworkspaceファイルが生成されます。それを開いて Xcode でプロジェクトを起動します。
プロジェクトを開いた後、左側の Xcode プロジェクトナビゲータで Pods フォルダを展開します。その中に AliVCSDK_ARTC サブフォルダが含まれていることを確認します。これは、SDK の依存関係が正常にインテグレーションされたことを示します。
SDK のダウンロードと手動インテグレーション
「SDK のダウンロード」セクションから最新の ARTC SDK をダウンロードして展開します。
展開した SDK からフレームワークファイルをプロジェクトディレクトリにコピーします。
Xcode でプロジェクトを開きます。[File] > [Add Files to "xxx"] を選択して、SDK ライブラリファイルをプロジェクトに追加します。
ターゲットを選択し、インポートしたフレームワークの属性を設定します。[Frameworks, Libraries, and Embedded Content] セクションで、
alivcffmpeg.frameworkとAliVCSDK_ARTC.frameworkの [Embed] 列が [Do Not Embed] に設定されていることを確認します。
ステップ 2:権限の設定
Info.plist にカメラとマイクの権限を追加します:[Privacy - Camera Usage Description] と [Privacy - Microphone Usage Description]。
(オプション) バックグラウンドオーディオを有効にします。プロジェクトの機能で、[Audio, AirPlay, and Picture in Picture] を選択します。
Windows
前提条件
要件:
Visual Studio 2015 以降。
Windows 7 以降。
ステップ 1:SDK のインテグレーション
「SDK のダウンロード」セクションから最新の ARTC SDK をダウンロードします。
SDK を展開し、すべてのファイルをプロジェクトディレクトリにコピーします。
プロジェクトのプロパティを設定します。
ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。
インクルードディレクトリを追加します:[構成プロパティ] > [C/C++] > [全般] を選択し、[追加のインクルード ディレクトリ] にヘッダーファイルのパスを追加します。
ライブラリディレクトリを追加します:[リンカー] > [全般] を選択し、[追加のライブラリ ディレクトリ] にライブラリファイル (
.lib) のパス (例:.../x64/Release) を追加します。リンクするライブラリファイルを指定します:[リンカー] > [入力] を選択し、[追加の依存ファイル] に
AliRTCSdk.libを追加します。
トラブルシューティング
一般的な問題と解決策:
問題 | 原因 | 解決策 |
|
| [リンカー] > [全般] > [追加のライブラリ ディレクトリ] のライブラリディレクトリパスが、 |
アーキテクチャの不一致エラー | プロジェクトのビルドプラットフォームが SDK バイナリのアーキテクチャと一致していません。 | プロジェクトのビルドプラットフォームが x64 に設定されていることを確認します。Windows 用 ARTC SDK は |
ランタイムでアプリケーションがクラッシュするか、起動に失敗する | 必要な Visual C++ 再頒布可能パッケージのランタイムライブラリがターゲットマシンにインストールされていません。 | デプロイ先のマシンに最新の Visual C++ 再頒布可能パッケージをインストールします。 |
Mac
前提条件
要件:
Xcode 14.0 以降 (最新の安定バージョンの使用を推奨します)。
macOS 10.13 以降。
安定したネットワーク接続。
ステップ 1:SDK のインテグレーション
Mac 用 ARTC SDK は、.framework 動的ライブラリバンドル (例:AliRTCSdk.framework) として提供されます。これは、Linux で使用される .so 共有ライブラリとは異なります。Mac SDK パッケージをダウンロードし、Linux パッケージの .so ファイルは使用しないでください。
SDK のダウンロード セクションから最新の ARTC SDK をダウンロードして展開します。
SDK パッケージから
.frameworkバンドルをプロジェクトディレクトリにコピーします。AAC 音声エンコーディングを使用しない場合は、PluginAAC.frameworkをスキップしてください。Xcode で、動的ライブラリを追加し、[Embed] を 埋め込んで署名 に設定します。
トラブルシューティング
一般的な問題と解決策:
問題 | 原因 | 解決策 |
フレームワークが見つからない、またはランタイムで | フレームワークはプロジェクトに追加されていますが、その [Embed] プロパティが正しく設定されていません。 | ターゲットの [General] タブで、ARTC SDK フレームワークの [Embed] プロパティを 埋め込んで署名 に設定します。これにより、フレームワークがアプリケーションにバンドルされ、適切にコード署名されることが保証されます。 |
ビルド中のコード署名エラー | SDK フレームワークのコード署名 ID が、アプリケーションの署名構成と競合しています。 | フレームワークターゲットの [Build Settings] で、[Code Signing Identity] を [Sign to Run Locally] に設定するか、アプリケーションの署名 ID と一致させます。チーム ID がすべてのターゲットで一貫していることを確認してください。 |
Apple Silicon でのアーキテクチャの非互換性 | SDK バイナリのアーキテクチャが Mac のプロセッサタイプと一致していません。 | Intel ベースの Mac の場合、プロジェクトのビルドアーキテクチャが |
よくある質問
ARTC SDK を使用すると、追加の Android 権限が必要になりますか?
ARTC SDK は、以下の Android 権限を自動的に宣言します (正確なリストはバージョンによって異なる場合があります。.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 接続、およびオーディオルーティングをサポートします。
既存のコードとの権限の互換性や競合はどのように処理すればよいですか?
ARTC SDK は権限の互換性 (例:Android 12 以降でのランタイム BLUETOOTH_CONNECT) を処理しますが、問題が発生する可能性があります。
マニフェストのマージ失敗など、ランタイムの動作異常。
Google Play の審査リスク:未使用の権限 (例:Bluetooth) を宣言すると、最小権限の原則に違反し、リジェクトの原因となる可能性があります。
これらの問題を解決するには:
必要性を評価する。未使用の権限を削除します。たとえば、targetSdk が 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>
ARTC SDK がサポートする音声コーデックは何ですか?
ARTC SDK は、WebRTC オーディオ処理パイプラインから継承した Opus をデフォルトの音声コーデックとして使用します。
このセクションの以下の事実は、ARTC SDK のソースドキュメントで検証済みです。
最新の SDK バージョン:Android と iOS プラットフォームの両方で 7.11.0 (2026年4月8日リリース)。
Maven 座標:
com.aliyun.aio:AliVCSDK_ARTC。CocoaPods ポッド名:AliVCSDK_ARTC。Opus 音声コーデック:RFC 6716 (IETF) で標準化され、ARTC SDK オーディオパイプラインのデフォルトかつ推奨コーデックとして使用されています。
Opus は、オープンでロイヤリティフリーのコーデック (RFC 6716) であり、6~510 kbps の低レイテンシーで高品質な音声を提供します。ARTC SDK は、以下の目的で Opus を使用します。
1対1 および複数人通話のためのリアルタイム音声エンコーディングとデコーディング。
ネットワーク状況に応じたアダプティブビットレート。
組み込みのノイズ抑制と自動ゲイン制御 (AGC)。
リリース履歴
バージョン | プラットフォーム | リリース日 | 変更点 |
v7.11.0 | iOS、Android | 2026年4月8日 | 修正:RTC の安定性に関する問題を解決しました。 |
v7.10.0 | iOS、Android、Linux | 2026年1月10日 | 修正:RTC の安定性に関する問題を解決しました。 |
v7.9.1 | iOS、Android、Linux、HarmonyOS | 2025年12月4日 | 最適化:RTC SDK のパフォーマンスを向上させるためにスレッド数を削減しました。RTC SDK にプリロード機能を追加しました。修正:RTC の安定性に関する問題を解決しました。 |
v7.8.1 | iOS、Android、Linux | 2025年11月12日 | 最適化:ユーザーエクスペリエンスを向上させました。修正:RTC の安定性に関する問題を解決しました。 |
v7.8.0 | iOS、Android、Linux、Mac | 2025年11月5日 (iOS/Android/Linux)、2025年12月1日 (Mac) | 最適化:RTC スレッドのパフォーマンスを向上させました。修正:RTC の安定性に関する問題を解決しました。 |
v7.7.0 | iOS、Android、Linux | 2025年7月31日 | 新規:MP4、AAC、WAV 形式でのローカル音声/映像録画のサポートを追加しました。Android のフォーカス API が API 26 の新しい API をサポートするようになり、デフォルトで有効になりました。最適化:音声データ監視コールバックに 24 K サンプルレートのサポートを追加しました。修正:RTC の安定性に関する問題を解決しました。 |
v7.6.0 | iOS、Android、Linux、Windows、HarmonyOS | 2025年9月2日 | 新規:音声/映像サブスクリプションの許可リストとブロックリストを追加しました。Android 14 の画面共有をサポートしました。最適化:モノラルからステレオへの変換リサンプリングで右チャンネルの使用を設定できるようになりました。AI シナリオで 16 K サンプリングを優先するようになりました。修正:安定性に関する問題を解決しました。 |