The minimum Android versions required for core ExoPlayer use cases are:
Use case | Android version | API level |
---|---|---|
Audio playback | 5.0 | 21 |
Audio playback (using offload) | 10 | 29 |
Video playback | 5.0 | 21 |
Video playback (with effects) | 5.0 | 21 |
Video playback (HDR) | 7.0 | 24 |
DASH (no DRM) | 5.0 | 21 |
DASH (Widevine CENC; "cenc" scheme) | 5.0 | 21 |
DASH (Widevine CENC; "cbcs" scheme) | 7.1 | 25 |
DASH (ClearKey; "cenc" scheme) | 5.0 | 21 |
SmoothStreaming (no DRM) | 4.4 | 19 |
SmoothStreaming (PlayReady; "cenc" scheme) | Android TV | Android TV |
HLS (no DRM) | 5.0 | 21 |
HLS (AES-128 encryption) | 5.0 | 21 |
HLS (Widevine CENC; "cenc" scheme) | 4.4 | 19 |
HLS (Widevine CENC; "cbcs" scheme) | 7.1 | 25 |
For a given use case, we aim to support ExoPlayer on all Android devices that satisfy the minimum version requirement. Known device-specific issues are listed on the Media3 GitHub issue tracker or the legacy ExoPlayer GitHub issue tracker.
Emulators
Some Android emulators don't properly implement components of Android's media stack, and as a result don't support ExoPlayer. This is an issue with the emulator, not with ExoPlayer. Android's official emulator ("Virtual Devices" in Android Studio) supports ExoPlayer provided the system image has an API level of at least 23. System images with earlier API levels don't support ExoPlayer. The level of support provided by third-party emulators varies. Issues running ExoPlayer on third-party emulators should be reported to the developer of the emulator rather than to the ExoPlayer team. Where possible, we recommend testing media apps on physical devices rather than emulators.