すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:SDK のダウンロードとインテグレーション

最終更新日:Aug 18, 2026

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 自動インテグレーション (推奨)

  1. プロジェクトルートにある 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' }
        }
    }
  2. 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 のダウンロードと手動インテグレーション

  1. 「SDK のダウンロード」セクションから ARTC SDK の AAR ファイルをダウンロードします。最新バージョンは 7.11.0 です。ファイル名の形式:AliVCSDK_ARTC-x.y.z.aar

  2. AAR ファイルをプロジェクトディレクトリ (例:app/libs) にコピーします。必要に応じてディレクトリを作成してください。

  3. プロジェクトルートにある 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.gradleallprojects/repositories に以下を追加します。

    allprojects {
        repositories {
            ...
            // ARTC SDK AAR ファイルへの相対パスを追加します。
            flatDir {
                dir 'app/libs'
            }
        }
    }
  4. app/build.gradle を開き、dependencies の下に AAR 依存関係を追加します。

    // x.y.z を実際のバージョン番号に置き換えてください。
    implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')
  5. ビルド後、依存関係は 外部ライブラリ の下に表示されます。

    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.gradledefaultConfig ブロックで、サポートする CPU アーキテクチャを指定します。利用可能なアーキテクチャ:armeabi-v7aarm64-v8ax86、および 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.xmltools: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

権限

説明

理由

必須

動的

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 自動インテグレーション (推奨)

  1. CocoaPods がまだインストールされていない場合は、インストールします。

    sudo gem install cocoapods
  2. プロジェクトルートに移動し、Podfile を作成します。

    pod init
  3. Podfile を開き、ARTC SDK の依存関係を追加します。最新バージョンは 7.11.0 です。

    target 'MyApp' do
      use_frameworks!
      # ${latest version} を実際のバージョン番号に置き換えてください。
      pod 'AliVCSDK_ARTC', '~> ${latest version}'
    end
  4. 依存関係をインストールします。

    pod install
  5. .xcworkspace ファイルが生成されます。それを開いて Xcode でプロジェクトを起動します。

プロジェクトを開いた後、左側の Xcode プロジェクトナビゲータで Pods フォルダを展開します。その中に AliVCSDK_ARTC サブフォルダが含まれていることを確認します。これは、SDK の依存関係が正常にインテグレーションされたことを示します。

SDK のダウンロードと手動インテグレーション

  1. 「SDK のダウンロード」セクションから最新の ARTC SDK をダウンロードして展開します。

  2. 展開した SDK からフレームワークファイルをプロジェクトディレクトリにコピーします。

  3. Xcode でプロジェクトを開きます。[File] > [Add Files to "xxx"] を選択して、SDK ライブラリファイルをプロジェクトに追加します。

  4. ターゲットを選択し、インポートしたフレームワークの属性を設定します。[Frameworks, Libraries, and Embedded Content] セクションで、alivcffmpeg.frameworkAliVCSDK_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 のインテグレーション

  1. 「SDK のダウンロード」セクションから最新の ARTC SDK をダウンロードします。

  2. SDK を展開し、すべてのファイルをプロジェクトディレクトリにコピーします。

  3. プロジェクトのプロパティを設定します。

    1. ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。

    2. インクルードディレクトリを追加します:[構成プロパティ] > [C/C++] > [全般] を選択し、[追加のインクルード ディレクトリ] にヘッダーファイルのパスを追加します。

    3. ライブラリディレクトリを追加します:[リンカー] > [全般] を選択し、[追加のライブラリ ディレクトリ] にライブラリファイル (.lib) のパス (例:.../x64/Release) を追加します。

トラブルシューティング

一般的な問題と解決策:

問題

原因

解決策

DLL load failed または cannot open AliRTCSdk.lib

.lib または .dll ファイルのパスがプロジェクトのプロパティで正しく設定されていません。

[リンカー] > [全般] > [追加のライブラリ ディレクトリ] のライブラリディレクトリパスが、.lib ファイルを含む正しいフォルダを指していることを確認します。付随する .dll ファイルをアプリケーションの出力ディレクトリまたはシステムの PATH にコピーします。

アーキテクチャの不一致エラー

プロジェクトのビルドプラットフォームが SDK バイナリのアーキテクチャと一致していません。

プロジェクトのビルドプラットフォームが x64 に設定されていることを確認します。Windows 用 ARTC SDK は x64 バイナリのみを提供します。x86 (32 ビット) または ARM 構成を使用すると、リンクエラーが発生します。

ランタイムでアプリケーションがクラッシュするか、起動に失敗する

必要な 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 ファイルは使用しないでください。

  1. SDK のダウンロード セクションから最新の ARTC SDK をダウンロードして展開します。

  2. SDK パッケージから .framework バンドルをプロジェクトディレクトリにコピーします。AAC 音声エンコーディングを使用しない場合は、PluginAAC.framework をスキップしてください。

  3. Xcode で、動的ライブラリを追加し、[Embed]埋め込んで署名 に設定します。

トラブルシューティング

一般的な問題と解決策:

問題

原因

解決策

フレームワークが見つからない、またはランタイムで image not found

フレームワークはプロジェクトに追加されていますが、その [Embed] プロパティが正しく設定されていません。

ターゲットの [General] タブで、ARTC SDK フレームワークの [Embed] プロパティを 埋め込んで署名 に設定します。これにより、フレームワークがアプリケーションにバンドルされ、適切にコード署名されることが保証されます。

ビルド中のコード署名エラー

SDK フレームワークのコード署名 ID が、アプリケーションの署名構成と競合しています。

フレームワークターゲットの [Build Settings] で、[Code Signing Identity][Sign to Run Locally] に設定するか、アプリケーションの署名 ID と一致させます。チーム ID がすべてのターゲットで一貫していることを確認してください。

Apple Silicon でのアーキテクチャの非互換性

SDK バイナリのアーキテクチャが Mac のプロセッサタイプと一致していません。

Intel ベースの Mac の場合、プロジェクトのビルドアーキテクチャが x86_64 に設定されていることを確認します。Apple Silicon (M1/M2) Mac の場合は、arm64 を使用します。lipo -info コマンドを使用して、SDK フレームワークがどのアーキテクチャをサポートしているかを確認します。

よくある質問

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) を宣言すると、最小権限の原則に違反し、リジェクトの原因となる可能性があります。

これらの問題を解決するには:

  1. 必要性を評価する。未使用の権限を削除します。たとえば、targetSdk が 30 以下の場合、BLUETOOTH_CONNECT 宣言を削除します。

  2. マニフェストのマージ競合を解決する。モジュールが競合する属性 (例:一貫性のない maxSdkVersion 値) を宣言している場合、AndroidManifest.xmltools 名前空間を使用して上書きします。

    <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 サンプリングを優先するようになりました。修正:安定性に関する問題を解決しました。