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