This guide charts the optimal progression of a media playback-focused app from a likely starting place to best-in-class. It's designed to help you think about scaling your app over time, and what features to implement when. While every media consumption app is different, consider these recommendations to achieve a best-in-class experience.
Basic media display and playback
A basic media display and playback app provides users with a foundational experience, which may include doing the following:
- Offer an in-app media player using with playback controls, using formats that are supported across the Android ecosystem, ideally using Media3s ExoPlayer.
- Use the latest version of the Jetpack Media3 library.
- Use optimized server-generated thumbnails as well as best practices for locally-generated ones, and cache them locally.
- Invest in accessibility.
Better media display and playback
A better media display and playback app leverages premium device hardware and updated platform features, to:
- Implement a
MediaSession
— made easy with Media3s ExoPlayer — to enable playback integration across different apps, system components, and devices. - Use best practices for sharing video, transcoding if necessary.
- Support sharing multiple pieces of content at the same time.
- Enable picture-in-picture for video and audio playback so users can multitask.
- Enable support for UltraHDR images.
- Play HDR video.
- Support playback to Cast devices.
- Add an app widget so users can get see what friends are up to and search from their home screen.
Best media display and playback
A best-in-class media display and playback app gives users access to advanced features that really make the app stand out, such as:
- Check to see if images contain a gain-map, and strategically use
setColorMode()
toActivityInfo.COLOR_MODE_HDR
to optimize for content display and battery life. - Optimize for foldables by supporting the
HALF_OPENED
state - Ensure design consistency with the platform.
- Implement Cast Connect so users can cast to your Android TV app.
- Use Performance Class to adapt your user experience to match device capabilities.