Google releases Media3 1.11 with smarter preloading, partial downloads and expanded HLS support

Google has released Media3 1.11, introducing updates across media playback, downloads, streaming formats, Cast and user interface components for Android developers. The release includes new preloading capabilities in ExoPlayer, partial media downloads and additional support for HLS and DASH, alongside a range of bug fixes.

One of the key additions is playlist preloading in ExoPlayer. Developers can configure ExoPlayer to preload the next item in a playlist before the current item finishes playing, potentially reducing the delay when users move between media items. Preloading is disabled by default and can be enabled through ExoPlayer.setPreloadConfiguration(). Media3’s default load control limits the process so that preloading does not compete with media required for active playback.

Media3 1.11 also expands its download capabilities with partial downloads for both progressive and adaptive streams. Developers can specify time-based start and end positions through DownloadHelper, allowing an app to download a selected portion of a piece of media rather than the entire stream. For progressive content, Media3 resolves that selection into a byte range, while adaptive streams use the requested time range.

Streaming support has also been extended. The HLS module adds HLS Content Steering and Pathway Cloning, technologies that can be used to direct playback between different content delivery pathways. Media3 1.11 also parses the SCORE attribute in HLS playlists and includes several fixes covering playlist refreshes, interstitials and low-latency live playback.

For DASH playback, the release separates CEA closed captions into different track groups based on language. It also adds support for parsing multiple Location elements from a DASH manifest and using them as fallback locations when a manifest fails to load. A crash involving manifests containing an empty SegmentTimeline element has also been addressed.

Google has made changes to Cast integration as well. A new CastParams class provides additional configuration options, including the ability to use Android’s SystemUI Output Switcher instead of an in-app Cast device picker where supported. New APIs also allow apps built with Compose to observe the visibility state of the media route picker. The release fixes several Cast-related issues involving track selection, live streams and sessions initiated from non-Media3 senders.

Media3 1.11 introduces a new Ktor data source extension backed by the Ktor HTTP stack. Google also addressed an issue that could cause the Ktor data source to load an entire HTTP response into memory when establishing a connection.

The update includes changes aimed at playback reliability. Subtitle and metadata problems no longer necessarily stop playback entirely; Media3 can disable a problematic track while allowing remaining tracks to continue. Google has also addressed issues affecting RTSP playback preparation, HLS streams and other playback scenarios.

Several deprecated APIs and symbols have been removed as part of the release. These include older Media3 implementations for metadata retrieval and media extraction, with developers directed toward their newer equivalents.

Media3 is Google’s Jetpack media library and includes components such as ExoPlayer for playback as well as APIs for media sessions, editing and UI. Google says version 1.11 brings updates across playback, editing and interface components as the library continues to serve as the media foundation for Android apps.

Written by Maya Robertson

Comments

Leave a Reply

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

Loading…

Court rejects Apple’s bid to delay App Store fee proceedings in Epic Games case