Google is giving Android’s media stack another big push with Media3 1.10, and this one is very much about making playback feel modern, polished, and easier to implement, rather than just tweaking codecs under the hood. If you’re building a video or audio app today—especially with Jetpack Compose—this release meaningfully cuts down the amount of boilerplate you need to ship a good‑looking player, while also adding support for next‑gen formats like Dolby Vision Profile 10 and VVC in ExoPlayer.
At the UI level, Google is continuing to lean into Compose as the default way to build media experiences, and Media3 1.10 reflects that shift. The star of the update is a new Player composable in the media3-ui-compose-material3 module, which basically hands you a full playback surface—video content frame plus Material You–styled controls—in a single, configurable widget. Instead of wiring up your own surface, play/pause, scrubber, and time labels, you drop in this Player composable and tune it with modifiers and callbacks, which is exactly what many indie and even big‑team apps want when they don’t have a dedicated video design system. Paired with that, Google is adding a ProgressSlider composable for seeking via drag and tap, and a dedicated PlaybackSpeedControl plus a styled PlaybackSpeedToggleButton, so speed control stops being an afterthought hack and becomes a first‑class UI element in both the base UI Compose module and the Material 3 variant.
The bigger story here is that Google clearly wants Media3’s Compose stack to be the fastest route to a “good enough” player that still looks like it belongs on modern Android, rather than every app reinventing transport controls. The blog post hints at what’s next—track selection helpers, subtitle support, and more customization knobs—which would move Media3 even closer to being the default turnkey solution for most audio and video apps. For developers who previously hesitated because “Compose media UI” meant a lot of manual glue, this release makes it much more realistic to just adopt the official widgets and focus time on business logic or content instead.

Under the hood, Media3 1.10 continues to push ExoPlayer forward on format support, particularly for premium video and advanced audio. ExoPlayer can now extract Dolby Vision Profile 10 and Versatile Video Coding (VVC) from MP4 containers, which matters if you’re handling high‑end HDR or future‑ready content that OEMs and streaming services are starting to experiment with. On the audio side, the MPEG‑H decoder extension gets a UI manager, and the IAMF (Immersive Audio Model and Formats) extension now supports binaural output more seamlessly—either via the iamf_tools decoder or via Android’s system Spatializer—while trying to match the actual speaker or Spatializer layout the user has. That’s a subtle but important move: as Android leans into spatial audio and richer multi‑channel setups, Media3 is getting the logic to output the right mix for whatever hardware is available, not just a generic downmix.
Advertising workflows get some quiet but impactful improvements too, particularly for apps leaning on HLS and Google’s IMA SDK. Media3 1.10 improves ad playback reliability and extends HLS interstitial support for tags like X-PLAYOUT-LIMIT and X-SNAP, which helps apps orchestrate when and how interstitials appear during streaming sessions. With the updated IMA SDK dependency, developers can now choose whether ad click‑through URLs open in Chrome Custom Tabs using a new setEnableCustomTabs flag, giving them a bit more control over how disruptive ad interactions feel inside their own UI. On top of that, ExoPlayer is now able to fall back to alternate HLS locations if a given stream fails to load, which is the kind of resilience users never see but absolutely notice when it isn’t there.
Media sessions also get a small but developer‑friendly change: MediaSessionService now extends LifecycleService, which sounds like a tiny tweak but makes it much easier to manage coroutines, observables, and other lifecycle‑aware components inside your media service. If you’ve ever juggled playback state and background service lifecycles, being able to lean on the same lifecycle scoping patterns you use elsewhere in an app is a welcome simplification. Google also calls out playback efficiency and performance as a key focus for the year, and Media3 1.10 introduces experimental support for scheduling the core playback loop more efficiently via experimentalSetDynamicSchedulingEnabled on ExoPlayer.Builder. You can toggle this on for testing today, and the team clearly plans to iterate and eventually make these kinds of optimizations the default path.
On the editing and export side, the Transformer stack quietly gets smarter about speed changes. When you increase playback speed for exported media using setSpeed, you now have EditedMediaItem.Builder.setFrameRate, which lets you cap the output frame rate so you don’t accidentally balloon file size or push devices too hard when speeding up content. That’s especially useful for apps doing short‑form video editing or user‑generated content exports, where performance and file size directly affect user satisfaction and upload times.
Google is also re‑organizing some pieces of the library into more focused modules to keep dependencies lean. The FrameExtractor has been pulled out of the core media3-inspector module and moved into a dedicated media3-inspector-frame artifact, so if all you care about is frame inspection and extraction, you can depend on the smaller, more targeted module instead of dragging in extra baggage. Similarly, the LottieOverlay effect now lives in its own media3-effect-lottie module, which continues to offer a straightforward way to apply vector‑based Lottie animations directly to video frames—ideal for things like animated overlays, branded intros, or playful on‑video effects. The modularization trend here is pretty clear: keep the core tight, and let developers opt into capabilities like frame processing or Lottie effects only when they actually need them.
Stepping back, Media3 1.10 feels like Google continuing to round out its opinionated media stack for modern Android apps: Compose‑first UI, robust ExoPlayer under the hood, and specialized modules for editing, effects, and advanced audio. If you’re already on Media3, this update is mostly a no‑brainer: you gain new UI components, better format coverage, more resilient playback, and cleaner module boundaries with minimal migration overhead—provided you update imports for things like FrameExtractor or LottieOverlay. And if you’ve been holding onto legacy ExoPlayer integrations or homegrown media UIs, Media3 1.10 is yet another nudge to start planning a migration, especially if you want a modern, Material‑aligned player without sinking a bunch of design and engineering time into the basics.
Discover more from GadgetBond
Subscribe to get the latest posts sent to your email.
