Google has officially released Media3 1.11, delivering a comprehensive update packed with new features, vital bug fixes, and sweeping performance improvements across playback, editing, and user interface components. As the underlying engine powering the vast majority of top-tier media applications on the Android platform, Media3 continues to evolve alongside the ecosystem’s modern development paradigms. This latest release brings significant expansions to Jetpack Compose modules, introduces innovative short-form video preloading mechanisms, modernizes Cast integration, and adds advanced networking and muxing utilities designed to streamline media engineering workflows for developers worldwide.

Playback UI and Jetpack Compose

Media3 1.11 - What's new?

With the Android development landscape shifting decisively toward a Compose-first philosophy, the development team is continuing to expand the media3-ui-compose and media3-ui-compose-material3 modules. This latest software update introduces granular control over player layouts, richer interaction patterns, and deeper integration with the Material 3 design system.

The Material 3 Player Composable now supports dedicated content slots for top controls, center controls, bottom controls, and error overlays. Developers can easily drop in their own customized Composables or rely on ready-made defaults published within the PlayerDefaults utility. Furthermore, the updated Player Composable integrates robust FocusRequester support, enabling seamless directional pad and keyboard navigation suited for Android TV, foldable devices, and desktop environments.

Enhancing touch and gesture controls, the PlaybackSpeedState now provides a dedicated fast-forward and slow-motion application programming interface. The companion demo-compose application showcases this functionality through long-press gestures to accelerate playback and double-tap actions for seeking. Combined with the ProgressSlider introduced in version 1.10, the Compose player user interface now delivers rich touch and gesture interactions completely out of the box.

Media3 1.11 - What's new?

For applications relying on sliding-window media feeds, such as short-form vertical video platforms, managing multiple ExoPlayer instances efficiently has traditionally presented a significant engineering hurdle. Media3 1.11 addresses this challenge by introducing PlayerPool in the common-ktx module and rememberPooledPlayer in the ui-compose module to automatically handle player recycling and preloading. The new ShortFormPlayerScreen within the demo application illustrates this feature in action through a vertically paging feed where individual players are intelligently pooled, preloaded, and seamlessly recycled as users scroll through content.

Rounding out the user interface updates is the new MiniController Composable in the Material 3 module. This compact playback bar displays the active item’s title, artist, artwork, and progress alongside standard play and pause controls. Like other default Composables in the Material 3 module, the MiniController supports dynamic color integration, automatically adapting to match the user’s wallpaper theme. This makes it an ideal solution for persistent bottom-sheet or mini-player affordances while users browse content or engage in active Cast sessions.

Modernized Cast Integration

Media3 1.11 - What's new?

Media3 1.11 also brings substantial updates to the Cast extension, introducing advanced programmatic configuration options and support for native operating system routing. Developers can now configure the Cast extension using CastParams, allowing them to explicitly enable the system output switcher on Cast button clicks. Setting this parameter configures the media route button to open Android’s native SystemUI Output Switcher on supported platform versions, thereby offering users a unified and familiar output picker experience.

For applications built with Jetpack Compose, integrating the media routing button—commonly referred to as the Cast button—is now more streamlined. The component automatically observes dialog state and updates accordingly without requiring additional boilerplate logic when used in conjunction with Media3’s native CastPlayer.

Core Playback and Session Enhancements

Media3 1.11 - What's new?

On the core playback front, the latest release introduces support for Eclipsa Video through HAGC dynamic HDR metadata on API 37 and newer devices. Eclipsa Video aims to deliver a more consistent high dynamic range experience across a diverse array of hardware by establishing a reliable baseline HDR white and adaptive headroom that adjusts to the screen and surrounding environment, ensuring creative intent is faithfully preserved. ExoPlayer now natively supports the playback of necessary HAGC timed metadata for progressive media formats such as MP4 and Matroska. The player automatically merges these metadata tracks with the associated video stream and delivers them out-of-band to the decoder on supported devices, while gracefully falling back to standard HDR playback on older hardware configurations.

To accommodate modern Kotlin development practices, Media3 1.11 introduces a new media3-datasource-ktor extension module. Providing the KtorDataSource backed by the Ktor HTTP stack, this addition offers a Kotlin-first, coroutine-friendly alternative to established data source modules like Cronet and OkHttp.

Session management has also been refined with the introduction of asynchronous connection handling. The MediaSession.Callback interface now includes onConnectAsync(), permitting developers to process controller connection attempts asynchronously—such as verifying authorization before accepting a connection. Additionally, the library implements more secure default behaviors for applications that do not explicitly override connection callbacks. Session data is no longer shared by default with untrusted controllers, restricting third-party or non-system applications lacking notification access from reading session information unless explicit authorization is implemented.

Media3 1.11 - What's new?

New Muxer Implementations and Container Parsing

To further bolster media manipulation capabilities, the release adds two dedicated muxers. The new OggMuxer is engineered for muxing OPUS and VORBIS streams into standard Ogg files, while the WavMuxer facilitates the generation of uncompressed and floating-point PCM WAV audio files.

Developers seeking to review the comprehensive list of changes, bug fixes, and technical documentation can access the official release notes and project issue tracker through the Android X media repository on GitHub.

Leave a Reply

Your email address will not be published. Required fields are marked *