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 |
SmoothStreaming(无 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 应用程序方面提供的支持中的不兼容性造成的。此类问题应首先报告给亚马逊。我们知道影响 FireOS 版本 4 及更早版本的问题。我们相信 FireOS 版本 5 解决了这些问题。
- Nexus Player(仅在使用 HDMI 转 DVI 线缆时):当设备使用特定类型的 HDMI 转 DVI 线缆连接到显示器时,Nexus Player 存在一个已知问题,导致视频播放速度过快。对于最终用户设置而言,使用 HDMI 转 DVI 线缆是不现实的,因为此类线缆无法传输音频。因此,此问题可以安全地忽略。我们建议在开发和测试过程中使用现实的最终用户设置(例如,使用标准 HDMI 线缆将设备连接到电视)。
- 模拟器:一些 Android 模拟器未正确实现 Android 媒体堆栈的组件,因此不支持 ExoPlayer。这是模拟器的问题,而不是 ExoPlayer 的问题。Android 的官方模拟器(Android Studio 中的“虚拟设备”)支持 ExoPlayer,前提是系统映像的 API 级别至少为 23。API 级别较早的系统映像不支持 ExoPlayer。第三方模拟器提供的支持级别各不相同。在第三方模拟器上运行 ExoPlayer 时遇到的问题应报告给模拟器开发人员,而不是报告给 ExoPlayer 团队。在可能的情况下,我们建议在物理设备上而不是在模拟器上测试媒体应用程序。