Brifing

What's New in Android Media3 1.11

Enhancements for playback, editing, and UI components in Android media apps

Android Developers Blog3 min

1Jetpack Compose UI Improvements

Media3 1.11 significantly enhances Jetpack Compose-based media interfaces. Customizable Player slots (topControls, centerControls, bottomControls), interactive gestures, and state observers have been added. Material3 integration has been deepened, while FocusRequester support enables seamless navigation on Android TV, foldables, and desktop environments. The demo app showcases fast-forward via long-press and seeking with double-tap features.

2Short-Form Video Preloading

PlayerPool and rememberPooledPlayer functions have been introduced for apps with sliding-window media feeds. These new tools automate efficient management of multiple ExoPlayer instances, ensuring uninterrupted playback during scrolling. The ShortFormPlayerScreen in the demo app demonstrates how players are pooled, preloaded, and recycled in a vertically paging feed. This feature is particularly critical for TikTok-like short-form video applications.

3MiniController with Dynamic Color Support

The new MiniController Composable compactly displays media metadata (title, artist, artwork) and basic controls. With Material3 Dynamic Color integration, it automatically adapts to the user's wallpaper theme. Optimized for use as a persistent mini player during content browsing or Cast sessions, it includes a progress bar and play/pause buttons to enhance user experience.

4Advanced Media State Management

New reactive state holders have been added to media3-ui-compose: rememberCurrentMediaItemState (current item metadata), rememberPlaylistState (playlist and active indices), rememberErrorState (playback errors). Error management has been simplified with ErrorText Composable and Material3's default ErrorOverlay. These enhancements allow app developers to monitor and manage media states more effectively.

5Modernized Cast Integration

Programmatic configuration options have been added via CastParams.Builder. The setShowSystemOutputSwitcherOnCastButtonClick(true) setting opens Android's native SystemUI Output Switcher on supported platform versions. For apps using Jetpack Compose, MediaRouteButton automatically observes and updates dialog states. When used with CastPlayer, this solution requires no additional logic, delivering a consistent media routing experience.

6Eclipsa Video and HAGC Support

Support for HAGC (ST 2094-50) dynamic HDR metadata has been added for Eclipsa Video on API 37+ devices. ExoPlayer automatically merges HAGC timed metadata tracks and delivers them to the decoder. This feature ensures adaptive brightness based on device and environment, preserving creative intent across devices. Older devices continue to receive standard HDR playback. Eclipsa Video promises more consistent color contrast across devices.

7Ktor HTTP Client Support

The new media3-datasource-ktor extension module introduces KtorDataSource, backed by the Ktor HTTP stack. This provides a Kotlin-first, coroutine-friendly alternative to existing Cronet and OkHttp data source modules. Optimized for asynchronous media operations, this solution aligns better with modern Android app development practices. Ktor's flexible architecture gives developers more control over customized network layer requirements.

8Future Directions and Community Engagement

The Media3 team indicates they'll continue working on more customization options and new additions in upcoming releases. Developers can share feedback via the project issue tracker. This update modernizes media experience in line with Android's Compose-first approach. These innovations, particularly optimized for large-screen devices and new interaction models, are poised to shape the future of Android's media ecosystem.

Original article: Android Developers Blog — Android Media3 1.11 ile Gelen Yenilikler