<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz" -->

---
title: Media3 1.11 - What's new? | daily.dev
description: Media3 1.11 is released with significant updates across playback, editing, and UI. Key highlights include expanded Jetpack Compose UI modules with customizable...
canonical: https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Media3 1.11 - What's new? | daily.dev
og:description: Media3 1.11 is released with significant updates across playback, editing, and UI. Key highlights include expanded Jetpack Compose UI modules with customizable...
og:url: https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz
og:image: https://api.daily.dev/og/posts/jEtAuMDNZ.png
og:image:alt: Media3 1.11 - What's new?
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Media3 1.11 - What's new?

**[Android Developers Blog](https://daily.dev/sources/androiddev)** · 5 min read · 2 upvotes · 0 comments

## Summary

Media3 1.11 is released with significant updates across playback, editing, and UI. Key highlights include expanded Jetpack Compose UI modules with customizable Player slots (topControls, centerControls, bottomControls), a PlayerPool for short-form video preloading and recycling, a new MiniController composable with Material3 Dynamic Color support, and new reactive state holders. The Cast extension gains CastParams configuration and SystemUI Output Switcher support. ExoPlayer adds Eclipsa Video HDR (HAGC/ST 2094-50) playback support on API 37+, a new Ktor HTTP data source module, async MediaSession controller connection via onConnectAsync(), improved default security for untrusted controllers, and new OggMuxer and WavMuxer utilities.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://android-developers.googleblog.com/2026/08/media3-1-11-whats-new.html>

## Questions this post answers

### What does PlayerPool do in Media3 1.11 and why would I use it for a short-form video feed?

PlayerPool, added in media3 common-ktx alongside rememberPooledPlayer in ui-compose, automatically handles recycling and preloading of multiple ExoPlayer instances. It targets apps with sliding-window media feeds like vertical short-form video, where managing many ExoPlayer instances efficiently is otherwise a manual and error-prone task. The demo-compose app's ShortFormPlayerScreen demonstrates pooled, preloaded, and recycled players in a vertically paging feed.

_daily.dev surfaces API changes like PlayerPool for teams building short-form video feeds with ExoPlayer._

### How do I make MediaSession.Callback authenticate a controller connection asynchronously in Media3 1.11?

Override the new onConnectAsync() method on MediaSession.Callback, which returns a ListenableFuture<MediaSession.ConnectionResult> instead of a synchronous result, letting you verify authorization before accepting a connection. Apps that don't override onConnect or onConnectAsync now get a more secure default where session data isn't shared with untrusted controllers lacking notification access.

_Developers hardening media session security can track API changes like this via daily.dev._

### What is the new Ktor data source module in Media3 1.11 and how does it compare to Cronet or OkHttp?

The media3-datasource-ktor module provides KtorDataSource, backed by the Ktor HTTP stack, offering a Kotlin-first, coroutine-friendly alternative to the existing Cronet and OkHttp data source modules in Media3. It gives developers another networking option when building custom media pipelines with coroutine-based code.

_Choosing between Ktor, Cronet, and OkHttp for media networking is easier tracking updates on daily.dev._

## Similar posts on daily.dev

- [Media3 1.10 is out](https://daily.dev/posts/media3-1-10-is-out-m3kuvxg1b) · Android Developers Blog · 39 upvotes · 0 comments
- [jetc.dev Newsletter Issue \#307](https://daily.dev/posts/jetc-dev-newsletter-issue-307-qgys7pqq5) · Jetpack Compose Newsletter · 0 upvotes · 0 comments

---

Tags: [#android](https://daily.dev/tags/android), [#kotlin](https://daily.dev/tags/kotlin), [#jetpack-compose](https://daily.dev/tags/jetpack-compose)

[View this post on daily.dev](https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Media3 1.11 - What's new?","url":"https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz"},"datePublished":"2026-08-11T16:01:14.700Z","dateModified":"2026-09-13T21:09:20.769Z","description":"Media3 1.11 is released with significant updates across playback, editing, and UI. Key highlights include expanded Jetpack Compose UI modules with customizable...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0e4935873466cb50557e9b5a8c6c0574?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0e4935873466cb50557e9b5a8c6c0574?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Android Developers Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Android Developers Blog","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a3d55bb1d63c48e7bd91b833eb5c2c3c","url":"https://daily.dev/sources/androiddev"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"android,kotlin,jetpack-compose","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Android Developers Blog","item":"https://daily.dev/sources/androiddev"},{"@type":"ListItem","position":3,"name":"Media3 1.11 - What's new?"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/media3-1-11---what-s-new--jetaumdnz#faq","mainEntity":[{"@type":"Question","name":"What does PlayerPool do in Media3 1.11 and why would I use it for a short-form video feed?","acceptedAnswer":{"@type":"Answer","text":"PlayerPool, added in media3 common-ktx alongside rememberPooledPlayer in ui-compose, automatically handles recycling and preloading of multiple ExoPlayer instances. It targets apps with sliding-window media feeds like vertical short-form video, where managing many ExoPlayer instances efficiently is otherwise a manual and error-prone task. The demo-compose app's ShortFormPlayerScreen demonstrates pooled, preloaded, and recycled players in a vertically paging feed. daily.dev surfaces API changes like PlayerPool for teams building short-form video feeds with ExoPlayer."}},{"@type":"Question","name":"How do I make MediaSession.Callback authenticate a controller connection asynchronously in Media3 1.11?","acceptedAnswer":{"@type":"Answer","text":"Override the new onConnectAsync() method on MediaSession.Callback, which returns a ListenableFuture<MediaSession.ConnectionResult> instead of a synchronous result, letting you verify authorization before accepting a connection. Apps that don't override onConnect or onConnectAsync now get a more secure default where session data isn't shared with untrusted controllers lacking notification access. Developers hardening media session security can track API changes like this via daily.dev."}},{"@type":"Question","name":"What is the new Ktor data source module in Media3 1.11 and how does it compare to Cronet or OkHttp?","acceptedAnswer":{"@type":"Answer","text":"The media3-datasource-ktor module provides KtorDataSource, backed by the Ktor HTTP stack, offering a Kotlin-first, coroutine-friendly alternative to the existing Cronet and OkHttp data source modules in Media3. It gives developers another networking option when building custom media pipelines with coroutine-based code. Choosing between Ktor, Cronet, and OkHttp for media networking is easier tracking updates on daily.dev."}}]}
```

