ExoPlayer 核心用例所需的最低 Android 版本为:
用例 | Android 版本号 | Android API 级别 |
---|---|---|
音频回放 | 4.4 | 19 |
音频播放(使用分流) | 10 | 29 |
视频播放 | 4.4 | 19 |
视频播放(带特效) | 4.4 | 19 |
视频播放 (HDR) | 7.0 | 24 |
DASH(无 DRM) | 4.4 | 19 |
DASH(Widevine CENC;“cenc”方案) | 4.4 | 19 |
DASH(Widevine CENC;“cbcs”方案) | 7.1 | 25 |
DASH(ClearKey;“cenc”架构) | 5.0 | 21 |
流畅流式传输(无 DRM) | 4.4 | 19 |
SmoothStreaming(PlayReady SL2000;“cenc”架构) | Android TV | Android TV |
HLS(无 DRM) | 4.4 | 19 |
HLS(AES-128 加密) | 4.4 | 19 |
HLS(Widevine CENC;“cenc”方案) | 4.4 | 19 |
HLS(Widevine CENC;“cbcs”方案) | 7.1 | 25 |
对于给定的用例,我们的目标是在满足最低版本要求的所有 Android 设备上支持 ExoPlayer。下面列出了一些已知的设备特定兼容性问题。Media3 GitHub 问题跟踪器或旧版 ExoPlayer GitHub 问题跟踪器也列出了设备特定问题。
- FireOS(版本 4 及更低版本):尽管我们一直致力于支持 FireOS 设备,但 FireOS 是 Android 的一个分支,因此我们无法提供支持。FireOS 上遇到的设备特定问题通常是由于 FireOS 为运行 Android 应用提供的支持不兼容。应在第一个实例中向 Amazon 报告此类问题。我们已了解到一些问题会影响 FireOS 版本 4 及更早版本。我们相信 FireOS 版本 5 可以解决这些问题。
- Nexus Player(仅限使用 HDMI 转 DVI 数据线时):有一项已知问题会影响 Nexus Player,但只会在设备使用特定类型的 HDMI 到 DVI 数据线连接到显示器上时,导致视频播放过快。对于最终用户设置,使用 HDMI 转 DVI 数据线是不现实的,因为此类数据线无法传输音频。因此,您可以放心地忽略此问题。我们建议使用真实的最终用户设置(例如,使用标准 HDMI 线连接到电视的设备)进行开发和测试。
- 模拟器:某些 Android 模拟器无法正确实现 Android 媒体堆栈的组件,因此不支持 ExoPlayer。这是模拟器的问题,而非 ExoPlayer。Android 的官方模拟器(“Android Studio 中的虚拟设备”)支持 ExoPlayer,前提是系统映像的 API 级别至少为 23。使用较低 API 级别的系统映像不支持 ExoPlayer。第三方模拟器提供的支持级别各不相同。在第三方模拟器上运行 ExoPlayer 的问题应报告给模拟器的开发者,而不是报告给 ExoPlayer 团队。我们建议尽可能在实体设备(而非模拟器)上测试媒体应用。