将 Jetpack Media3 库集成为媒体播放、会话、编辑、元数据和帧提取的标准,以确保应用利用推荐的 API 在各种 Android 设备类型上处理复杂的媒体任务。通过从旧版框架 API(例如 MediaPlayer、MediaMuxer 和 MediaExtractor)迁移到强大的 Jetpack Media3 库,可实现媒体架构的现代化,从而提供统一且功能丰富的工具包,确保一致的媒体体验。
必需的实现
如需符合 AEP 条件,您的应用必须遵守以下要求:
- 不应使用旧版 Android 框架 API,包括 MediaPlayer、MediaExtractor、MediaMuxer 和 MediaMetadataRetriever。
- 如果播放是核心用户历程,应用必须集成媒体会话,以便操作系统感知和跨设备集成。
- 如果应用具有音频内容库,则必须通过 MediaLibraryService 公开内容,并实现对媒体恢复的支持。
指南适用性
本准则适用于:
- 支持媒体(视频或音频)播放或视频编辑的应用。
- 应用可用的所有设备规格。
豁免
应用可以使用同等替代框架,该框架可在整个生态系统中提供类似的质量、用户功能、稳定性和兼容性。如果您有合适的框架可供考虑,请与支持团队联系。如需符合条件,替代实现必须满足以下基准:
- 在快速网络上,第一个视频帧必须在用户发起操作后的 500 毫秒内显示。
- 在 30 秒的时间范围内,播放必须保持流畅,不得出现明显的丢帧或可听到的音频欠载。
- 应用必须正确管理音频焦点。
- 即使在后台运行,应用也必须响应硬件媒体键。
- 如果支持后台播放,应用必须发布媒体样式的通知并使用前台服务。
- 如果应用支持恢复播放,则必须实现媒体恢复。
- 必须妥善处理耳机断开连接的情况。例如,暂停播放,而不是切换到音箱。
- 在切换设备屏幕方向时,播放必须继续进行,不得出现丢帧。
功能文档和资源
以下资源提供了有关 Media3 功能的实现指南和技术详情。这些资源仅供您参考,不包含其他计划要求。
- Jetpack Media3
- Media3 ExoPlayer
- 使用 MediaSession 控制和通告播放
- MediaExtractorCompat API
- MediaMuxerCompat API
- MetadataRetriever API
- FrameExtractor API