将 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