核心 ExoPlayer 用例所需的最低 Android 版本为:
用例 | Android 版本 | API 级别 |
---|---|---|
音频播放 | 5.0 | 21 |
音频播放(使用卸载) | 10 | 29 |
视频播放 | 5.0 | 21 |
视频播放(带效果) | 5.0 | 21 |
视频播放(HDR) | 7.0 | 24 |
DASH(无 DRM) | 5.0 | 21 |
DASH (Widevine CENC; "cenc" 方案) | 5.0 | 21 |
DASH (Widevine CENC; "cbcs" 方案) | 7.1 | 25 |
DASH (ClearKey; "cenc" 方案) | 5.0 | 21 |
SmoothStreaming(无 DRM) | 4.4 | 19 |
SmoothStreaming (PlayReady; "cenc" 方案) | Android TV | Android TV |
HLS(无 DRM) | 5.0 | 21 |
HLS (AES-128 加密) | 5.0 | 21 |
HLS (Widevine CENC; "cenc" 方案) | 4.4 | 19 |
HLS (Widevine CENC; "cbcs" 方案) | 7.1 | 25 |
对于给定的用例,我们的目标是在所有满足最低版本要求的 Android 设备上支持 ExoPlayer。已知设备特有问题列在 Media3 GitHub 问题跟踪器 或 旧版 ExoPlayer GitHub 问题跟踪器上。
模拟器
某些 Android 模拟器未能正确实现 Android 媒体堆栈的组件,因此不支持 ExoPlayer。这是模拟器的问题,而非 ExoPlayer 的问题。Android 官方模拟器(Android Studio 中的“虚拟设备”)支持 ExoPlayer,前提是系统映像的 API 级别至少为 23。较早 API 级别的系统映像不支持 ExoPlayer。第三方模拟器提供的支持程度各不相同。在第三方模拟器上运行 ExoPlayer 时遇到的问题应向模拟器开发者报告,而不是向 ExoPlayer 团队报告。在可能的情况下,我们建议在物理设备而非模拟器上测试媒体应用。