ショートビデオシリーズなどの機能を構築するためにプレーヤーコンポーネントのみが必要な場合は、本トピックでは ApsaraVideo Player SDK for Android の統合方法を説明します。ショートビデオを作成する必要もある場合は、ApsaraVideo MediaBox SDK for Android の使用を推奨します。両方の SDK を個別に使用すると、クラスが重複し、コンパイルの失敗につながる可能性があります。
環境要件
最新バージョンの Android Studio を使用します。ダウンロード URL:Android Studio。
Android バージョン: 4.3 以降。
ABI 互換性: 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") } }Gradle 7.x より前のバージョンの場合
プロジェクトの
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") } }
Player SDK の依存関係を追加します。
アプリの
build.gradleファイルのdependenciesブロックに Player SDK の依存関係を追加します。以下に例を示します。説明正しい SDK バージョン番号を指定していることを確認してください。バージョンが正しくない場合、統合エラーが発生します。Player SDK のバージョンを確認するには、「ApsaraVideo Player SDK for Android リリース履歴」をご参照ください。
dependencies { // ApsaraVideo Player SDK for Android implementation 'com.aliyun.sdk.android:AliyunPlayer:7.18.0-full' }dependencies { // ApsaraVideo Player SDK for Android implementation("com.aliyun.sdk.android:AliyunPlayer:7.18.0-full") }
ローカル統合
ネットワークの問題で Maven リポジトリから SDK をダウンロードできない場合は、ローカル統合を使用してください。
以下の手順では、Android Studio Flamingo | 2022.2.1 を例に説明します。他のバージョンでも手順は同様です。
必要な AAR パッケージをプロジェクトの
libsディレクトリにコピーします。libsディレクトリが存在しない場合は、作成してください。app build libs AliyunPlayer-x.x.x-full.aar src androidTest mainプロジェクトの
settings.gradleファイルで、dependencyResolutionManagementブロック内のrepositoriesブロックにflatDir設定を追加します。以下に例を示します。flatDir { dirs 'libs' }アプリの
build.gradleファイルで、dependenciesブロックに AAR ファイルへの依存関係を追加します。以下に例を示します。dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) }
リアルタイムストリーミング (RTS) 統合 (オプション)
リアルタイムストリーミング (RTS) コンポーネントを統合する必要がある場合は、「Android での RTS ストリームプルの実装」をご参照ください。
ステップ 2: ライセンスの設定
中国本土、香港 (中国)、マカオ (中国) 以外の地域でサービスを使用する場合は、次のいずれかの方法で国際環境を設定してください。
方法 1: 次の API を呼び出して、デフォルト設定を国際環境に更新してください。
// 中国本土、香港 (中国)、マカオ (中国) 以外の地域でサービスを使用するには、 // 他のプレーヤー API を呼び出す前にこの API を呼び出して、国際環境を設定します。 // これ以降のすべての操作は、この環境で実行されます。 // 環境は実行時に変更できません。 AlivcBase.getEnvironmentManager().setGlobalEnvironment(AlivcEnv.GlobalEnv.ENV_SEA);方法 2 (推奨):プレーヤー SDK V7.6.0 以降では、
XMLを使用して国際環境を設定できます。AndroidManifest.xmlファイルに<meta-data>ノードを追加してください。<meta-data android:name="com.aliyun.alivc_env" android:value="SEA"/>以下に設定例を示します。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <application ... <meta-data android:name="com.aliyun.alivc_license.licensekey_SEA" android:value="xxx" /> <meta-data android:name="com.aliyun.alivc_license.licensefile_SEA" android:value="assets/SEALicense.crt" /> <meta-data android:name="com.aliyun.alivc_env" android:value="SEA"/> </application> </manifest>
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パッケージへの依存関係を追加してください。Player SDK とショートビデオ SDK の両方を統合する場合は、Player SDK の依存関係には
AliyunPlayer-x.x.x-partパッケージを使用してください。また、共有の FFmpeg バージョンを使用するため、com.aliyun.video.android:AlivcFFmpeg:x.x.xパッケージへの依存関係を追加する必要があります。統合中に誤った SDK パッケージを使用すると、FFmpeg の競合が発生する可能性があります。
よくある質問
一般的な問題と解決策については、「ApsaraVideo Player に関するよくある質問」をご参照ください。