整合 Jetpack Media3 程式庫,做為媒體播放、工作階段、編輯、中繼資料和影格擷取的標準,確保應用程式使用建議的 API,處理各種 Android 裝置的複雜媒體工作。從舊版架構 API (例如 MediaPlayer、MediaMuxer 和 MediaExtractor) 遷移至功能強大的 Jetpack Media3 程式庫,即可實現媒體架構現代化,並提供統一且功能豐富的工具組,確保媒體體驗一致。
必要實作
如要加入 AEP,應用程式必須遵守下列規定:
| ID | 規範 |
|---|---|
| AEP-M3-GAA | 請勿使用舊版 Android 架構 API,包括 MediaPlayer、MediaExtractor、MediaMuxer 和 MediaMetadataRetriever。 |
| AEP-M3-GAB | 如果播放是核心使用者歷程,應用程式就必須整合媒體工作階段,讓作業系統瞭解情況,並進行跨裝置整合。 |
| AEP-M3-GAC | 如果應用程式有音訊內容庫,則必須透過 MediaLibraryService 公開內容,並實作媒體內容續播功能。 |
適用規範
本規範適用於:
- 支援媒體 (影片或音訊) 播放或影片編輯的應用程式。
- 應用程式支援的所有板型規格。
豁免資格
應用程式可以使用同等替代架構,在整個生態系統中提供類似的品質、使用者功能、穩定性和相容性。如有合適的架構可供考慮,請與支援團隊聯絡。如要符合資格,替代實作方式必須達到下列基準:
| ID | 豁免資格 |
|---|---|
| AEP-M3-EAA | 在快速網路中,使用者啟動後 500 毫秒內必須顯示第一個影片影格。 |
| 在 30 秒的視窗中,播放必須保持流暢,不得出現明顯的掉格或音訊欠載。 | |
| 應用程式必須妥善管理音訊焦點。 | |
| 應用程式必須回應硬體媒體鍵,即使在背景執行也一樣。 | |
| 如果支援背景播放,應用程式就必須發布媒體樣式的通知,並使用前景服務。 | |
| 如果應用程式支援繼續播放,就必須實作媒體續播功能。 | |
| 必須妥善處理耳機連線中斷的情況。例如暫停播放,而不是切換到音箱。 | |
| 在裝置方向之間切換時,播放作業必須繼續,不得遺失影格。 |
功能說明文件和資源
下列資源提供 Media3 功能的實作指南和技術詳細資料。這些資源僅供參考,不包含其他計畫規定。
- Jetpack Media3
- Media3 ExoPlayer
- 使用 MediaSession 控制及通告播放功能
- MediaExtractorCompat API
- MediaMuxerCompat API
- MetadataRetriever API
- FrameExtractor API