Jetpack Media3 ライブラリを、メディア再生、セッション、編集、メタデータ、フレーム抽出の標準として統合し、アプリが Android フォーム ファクタ全体で複雑なメディア タスクを処理するための推奨 API を利用できるようにします。レガシー フレームワーク API(MediaPlayer、MediaMuxer、MediaExtractor など)から堅牢な Jetpack Media3 ライブラリに移行することで、メディア アーキテクチャを最新化すると、一貫したメディア エクスペリエンスを保証する、機能豊富な統合ツールキットが提供されます。
実装の要件
AEP の対象となるには、アプリが次の要件を満たしている必要があります。
| ID | ガイドライン |
|---|---|
| AEP-M3-GAA | MediaPlayer、MediaExtractor、MediaMuxer、MediaMetadataRetriever などのレガシー Android フレームワーク API を使用してはなりません。 |
| AEP-M3-GAB | 再生がコア ユーザー ジャーニーである場合、アプリは OS 認識とクロスデバイス統合のためにメディア セッションを統合しなければなりません。 |
| AEP-M3-GAC | アプリにオーディオ コンテンツ ライブラリがある場合、MediaLibraryService を通じてコンテンツを公開し、メディアの再開のサポートを実装する必要があります。 |
ガイドラインの適用範囲
このガイドラインは、以下に適用されます。
- メディア(動画または音声)の再生または動画編集をサポートするアプリ。
- アプリが利用可能なすべてのフォーム ファクタ。
除外
アプリは、エコシステム全体で同等の品質、ユーザー機能、安定性、互換性を提供する同等の代替フレームワークを使用できます。検討に適したフレームワークがある場合は、サポートにお問い合わせください。代替実装が対象となるには、次のベンチマークを満たす必要があります。
| ID | 免除 |
|---|---|
| AEP-M3-EAA | 高速ネットワークでは、ユーザーが開始してから 500 ミリ秒以内に最初の動画フレームを表示する必要があります。 |
| 30 秒のウィンドウ内で、フレーム落ちや音声のアンダーランが目に見える形で発生することなく、再生がスムーズに継続される必要があります。 | |
| アプリは音声フォーカスを適切に管理する必要があります。 | |
| アプリは、バックグラウンドで実行されている場合でも、ハードウェア メディアキーに応答する必要があります。 | |
| バックグラウンド再生がサポートされている場合、アプリはメディア スタイルの通知を投稿し、フォアグラウンド サービスを使用する必要があります。 | |
| アプリが再生の再開をサポートしている場合、メディアの再開を実装する必要があります。 | |
| ヘッドホンの切断は適切に処理する必要があります。たとえば、スピーカーに切り替える代わりに再生を一時停止します。 | |
| デバイスの向きを切り替える際に、フレーム落ちすることなく再生を継続しなければなりません。 |
機能のドキュメントとリソース
以下のリソースでは、Media3 機能の実装ガイダンスと技術的な詳細について説明します。これらのリソースは参考用であり、プログラムの追加要件は含まれていません。
- Jetpack Media3
- Media3 ExoPlayer
- MediaSession を使用して再生を制御およびアドバタイズする
- MediaExtractorCompat API
- MediaMuxerCompat API
- MetadataRetriever API
- FrameExtractor API