このトピックでは、Android で ExoPlayer と Mobile DNS (HTTPDNS) を統合する方法について説明します。
概要
ExoPlayer は、Google によって開発され、Android プラットフォーム向けに最適化されたオープンソースのマルチメディアプレーヤーライブラリです。 Android の組み込み MediaPlayer と比較して、ExoPlayer はより柔軟で拡張性があり、ローカルファイル、ネットワークストリーミング、さまざまなフォーマット(MP4、HLS、DASH など)の再生など、さまざまなメディア再生ニーズに適しています。
ExoPlayer は OkHttpDataSource を使用して、ネットワークリクエストを処理し、リソースデータを読み取ります。OkHttp は、カスタム DNS サービス用のインターフェイスを公開しており、Mobile DNS (HTTPDNS) を使用できます。
統合ステップ
1. OkHttp 拡張 SDK の追加
使用している ExoPlayer のバージョンに基づいて、適切な OkHttp 拡張 SDK を選択する必要があります。
androidx media より前のバージョンの ExoPlayer を使用している場合は、次の依存関係を追加する必要があります。
implementation "androidx.media3:media3-datasource-okhttp:x.x.x"ExoPlayer2 バージョンを使用している場合は、次の依存関係を追加する必要があります。
implementation "com.google.android.exoplayer:extension-okhttp:x.x.x"上記の両方のソリューションで、OkHttp 拡張 SDK のバージョンは ExoPlayer SDK のバージョンと一致している必要があります。
2. OkHttp 拡張 SDK の使用
ExoPlayer を初期化するときは、OkHttp 拡張 SDK を使用します。
2 つの ExoPlayer バージョンで使用される OkHttp 拡張 SDK のコードは同じです。
ExoPlayer player = new ExoPlayer.Builder(context)
.setMediaSourceFactory(new DefaultMediaSourceFactory(new OkHttpDataSource.Factory(new Call.Factory() {
@NonNull
@Override
public Call newCall(@NonNull Request request) {
// プロジェクトの OkHttpClient インスタンスの値に置き換えます。
return client.newCall(request);
}
})))
.build();3. 使用: Mobile DNS (HTTPDNS)
最後に、Mobile DNS (HTTPDNS) を OkHttp ネットワークライブラリと統合します。詳細については、「Android で HTTPDNS Android SDK と OkHttp フレームワークを統合するためのベストプラクティス」をご参照ください。