このトピックでは、プレーヤーコンポーネントのみを必要とするショートビデオ再生シナリオ向けに、ApsaraVideo Player SDK for Android を統合する方法について説明します。ショートビデオの作成も必要な場合は、all-in-one SDK for Android を統合してください。そうしない場合、クラスの重複問題が発生し、コンパイルが失敗する可能性があります。
環境要件
最新バージョンの Android Studio を使用してください。Android Studio からダウンロードできます。
オペレーティングシステム:Android 4.3 以降。
デバイスアーキテクチャ:デバイスは armv7 または arm64 アーキテクチャを使用する必要があります。
ApsaraVideo Player SDK for Android はエミュレーターをサポートしていません。統合後、アプリケーションは物理デバイスで実行する必要があります。
前提条件
ステップ 1: SDK の統合
Gradle を使用した統合
デバイスがネットワークに接続され、Alibaba Cloud Maven リポジトリにアクセスできることを確認してください。
Maven 構成を追加します。
Gradle 7.x 以降との統合
プロジェクトの
setting.gradleファイルを次のように設定します。dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() jcenter() // jcenter() は非推奨になる予定です。 mavenCentral() に徐々に置き換えることを推奨します。 maven { url "https://maven.aliyun.com/repository/releases" } } }dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() jcenter() // jcenter() は非推奨になる予定です。 mavenCentral() に徐々に置き換えることを推奨します。 maven("https://maven.aliyun.com/repository/releases") } }7.0 より前のバージョンの Gradle との統合
プロジェクトの
build.gradleファイルを次のように設定します。allprojects { repositories { google() mavenCentral() jcenter() // jcenter() は非推奨になる予定です。 mavenCentral() に徐々に置き換えることを推奨します。 maven { url "https://maven.aliyun.com/repository/releases" } } }allprojects { repositories { google() mavenCentral() jcenter() // jcenter() は非推奨になる予定です。 mavenCentral() に徐々に置き換えることを推奨します。 maven("https://maven.aliyun.com/repository/releases") } }
プレーヤー SDK をインポートします。
アプリの build.gradle ファイルを変更して、dependencies ノードにプレーヤー SDK を追加します。以下に構成例を示します。
説明プレーヤー SDK の正しいバージョン番号を指定していることを確認してください。そうしない場合、エラーが報告され、インポートが失敗します。最新のバージョン番号は、「ApsaraVideo Player SDK for Android のリリースノート」で確認できます。
dependencies { // AliPlayer SDK implementation 'com.aliyun.sdk.android:AliyunPlayer:7.10.0-full' }dependencies { // AliPlayer SDK implementation("com.aliyun.sdk.android:AliyunPlayer:7.9.0-full") }
ローカルでの統合
ネットワークの問題で Maven リポジトリからプレーヤー SDK パッケージをダウンロードできない場合は、SDK をローカルで統合できます。
以下の手順では、Android Studio Flamingo | 2022.2.1 を例として使用します。手順は他のバージョンの Android Studio でも同様です。
必要な AAR パッケージをプロジェクトの libs フォルダにコピーします。libs フォルダが存在しない場合は作成します。

プロジェクトの build.gradle ファイルを変更して、allprojects の repositories ノードに flatDir 設定を追加します。以下に構成例を示します。
flatDir { dirs 'libs' }アプリの build.gradle ファイルを変更して、dependencies ノードに AAR パッケージへのリファレンスを追加します。以下に構成例を示します。
dependencies { implementation fileTree(dir: 'libs', include the following: ['*.aar']) }
RTS SDK の統合 (オプション)
リアルタイムストリーミング (RTS) コンポーネントを統合するには、「Android での RTS ストリームフェッチングの実装」をご参照ください。
ステップ 2:ライセンスの設定
中国本土、中国 (香港)、および中国 (マカオ) を除くグローバル環境を使用する場合は、次のいずれかのメソッドを選択して、Alibaba Cloud International Website (www.alibabacloud.com) の環境を構成する必要があります。
メソッド 1:次の API 操作を呼び出して、デフォルト構成を Alibaba Cloud International Website の環境に更新します。
// 中国本土、中国 (香港)、および中国 (マカオ) を除くグローバル環境を使用する場合は、プレーヤーの API 操作を呼び出す前に、必ず次の API 操作を呼び出して、デフォルト構成を Alibaba Cloud International Website の環境に更新してください。これにより、後続のすべてのサービスが Alibaba Cloud International Website の環境で実行されるようになります。 // 統一された AlivcBase インターフェイスを使用して、Alibaba Cloud International Website の環境を設定します。ランタイムに環境を変更することはできません。 AlivcBase.getEnvironmentManager().setGlobalEnvironment(AlivcEnv.GlobalEnv.ENV_SEA);メソッド 2 (推奨): プレーヤー SDK V7.6.0 以降では、
XMLメソッドを使用して Alibaba Cloud 国際サイトの環境を設定できます。AndroidManifest.xmlファイルに<meta-data>ノードを追加します。<meta-data android:name="com.aliyun.alivc_env" android:value="SEA"/>次の例は構成を示しています:

Android クライアントにライセンスを追加するには、「Android クライアントへのライセンスの追加」をご参照ください。
ステップ 3:権限の設定
app/src/main/AndroidManifest.xml ファイルで、必要なすべての権限を宣言します:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />ステップ 4:難読化の設定
proguard-rules.pro ファイルで難読化を構成します。以下にサンプルコードを示します。
-keep class com.alivc.**{*;}
-keep class com.aliyun.**{*;}
-keep class com.cicada.**{*;}
-dontwarn com.alivc.**
-dontwarn com.aliyun.**
-dontwarn com.cicada.**ステップ 5:ログの有効化 (オプション)
ログ記録を有効にすると、問題を迅速に特定してトラブルシューティングするのに役立ちます。また、パフォーマンスの最適化やユーザーエクスペリエンスの向上のためのデータも提供されます。ビジネスシナリオに基づいてログ記録を有効にするかどうかを決定できます。ログを取得するには、「SDK ログの取得」をご参照ください。
// ログを有効にします。
Logger.getInstance(context).enableConsoleLog(true);
// ログレベルを設定します。デフォルトのレベルは AF_LOG_LEVEL_INFO です。問題をトラブルシューティングするには、レベルを AF_LOG_LEVEL_TRACE に設定できます。
Logger.getInstance(context).setLogLevel(Logger.LogLevel.AF_LOG_LEVEL_INFO);プロジェクトの構造
ファイル名 | 説明 |
AliyunPlayer-x.x.x-full.aar | FFmpeg 動的ライブラリを含む完全な AAR パッケージ。 |
AliyunPlayer-x.x.x-part.aar | FFmpeg 動的ライブラリを含まない AAR パッケージ。 |
AlivcArtp-x.x.x.aar | ARTP プロトコルをサポートします。このパッケージはオプションです。 |
AlivcArtc-x.x.x.aar | ARTC プロトコルをサポートします。このパッケージはオプションです。 |
ショートビデオ SDK を統合しない場合は、AliyunPlayer-x.xx.x-full.aar パッケージに直接的な依存関係を追加できます。
プレーヤー SDK とショートビデオ SDK の両方を統合する場合、プレーヤー SDK は AliyunPlayer-x.x.x-part パッケージに依存します。また、互換性のある FFmpeg バージョンを使用する必要もあります。これは、com.aliyun.video.android:AlivcFFmpeg:x.x.x パッケージへの依存関係を追加する必要があることを意味します。
統合中に誤った SDK パッケージを使用すると、FFmpeg の競合が発生します。
よくある統合に関する問題
よくある統合に関する問題とそのソリューションの詳細については、「ApsaraVideo Player に関するよくある質問」をご参照ください。