{"id":4874,"date":"2025-03-28T07:16:57","date_gmt":"2025-03-27T22:16:57","guid":{"rendered":"https:\/\/aireviewirush.com\/?p=4874"},"modified":"2025-03-28T07:16:57","modified_gmt":"2025-03-27T22:16:57","slug":"media3-1-6-0-whats-new","status":"publish","type":"post","link":"https:\/\/aireviewirush.com\/?p=4874","title":{"rendered":"Media3 1.6.0 \u2014 what\u2019s new?"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<meta content=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi3xfaeSVwhItxPTRdI2vEUu6t8ZSJWKMYB6xWkb9inI8ab1GltWuCExl29Z8SAQ1Fo2A4moEQLykBdkjIZ_IqikrD-QrmkwWKCOaKALh5fMiV5SRRUM7JRmjavEZ64horigEBxNK5RtW_NI88_LjbqTa69Os3a-ADQbrNp7R5e78dXmkc7rsYyx3cRYdo\/s1600\/AndroidSpotlight_Camera&amp;Media_Blog_Media3%201.5.0_Card%20%281%29.png\" name=\"twitter:image\"\/><br \/>\n<img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi3xfaeSVwhItxPTRdI2vEUu6t8ZSJWKMYB6xWkb9inI8ab1GltWuCExl29Z8SAQ1Fo2A4moEQLykBdkjIZ_IqikrD-QrmkwWKCOaKALh5fMiV5SRRUM7JRmjavEZ64horigEBxNK5RtW_NI88_LjbqTa69Os3a-ADQbrNp7R5e78dXmkc7rsYyx3cRYdo\/s1600\/AndroidSpotlight_Camera&amp;Media_Blog_Media3%201.5.0_Card%20%281%29.png\" alt=\"\"><\/p>\n<p><em>Posted by Andrew Lewis \u2013 Software program Engineer<\/em><\/p>\n<p><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh1PmhSCIphw3wGW7dJ9Yr7LLgG_6rqNwklO04UO6iZAsh6HjosgOn_SovJ8sEJvNYdeU08nMgnHQ3_L8F3pNU0Z72viRxqg8Ir0ceP-XVx45lkfImCbLnKywl7lho5CWJt0hBqt5dehuzLLpkrmkHdpTXRCzokmV4m3lswrsxAHWRHCstygUnK5PKCrO4\/s1600\/AndroidSpotlight_Camera&amp;Media_Blog_Media3%201.5.0_Banner.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" border=\"0\" data-original-height=\"800\" data-original-width=\"100%\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh1PmhSCIphw3wGW7dJ9Yr7LLgG_6rqNwklO04UO6iZAsh6HjosgOn_SovJ8sEJvNYdeU08nMgnHQ3_L8F3pNU0Z72viRxqg8Ir0ceP-XVx45lkfImCbLnKywl7lho5CWJt0hBqt5dehuzLLpkrmkHdpTXRCzokmV4m3lswrsxAHWRHCstygUnK5PKCrO4\/s1600\/AndroidSpotlight_Camera&amp;Media_Blog_Media3%201.5.0_Banner.png\" alt=\"\"><\/a><\/p>\n<p><em>This text is cross-published on <a href=\"https:\/\/medium.com\/google-exoplayer\/media3-1-6-0-whats-new-bbeee70dc999\" target=\"_blank\" rel=\"noopener\">Medium<\/a><\/em><\/p>\n<p>This launch features a host of bug fixes, efficiency enhancements and new options. Learn on to seek out out extra, and as at all times please try the <a href=\"https:\/\/github.com\/androidx\/media\/blob\/1.6.0\/RELEASENOTES.md\" target=\"_blank\" rel=\"noopener\">full launch notes<\/a> for a complete overview of adjustments on this launch.<\/p>\n<hr\/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_53 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\" role=\"button\"><label for=\"item-6a285efb36e28\" ><span class=\"\"><span style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input aria-label=\"Toggle\" aria-label=\"item-6a285efb36e28\"  type=\"checkbox\" id=\"item-6a285efb36e28\"><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/aireviewirush.com\/?p=4874\/#Playback_MediaSession_and_UI\" title=\"Playback, MediaSession and UI\">Playback, MediaSession and UI<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/aireviewirush.com\/?p=4874\/#Media_extraction_and_body_retrieval\" title=\"Media extraction and body retrieval\">Media extraction and body retrieval<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/aireviewirush.com\/?p=4874\/#Enhancing_transcoding_and_export\" title=\"Enhancing, transcoding and export\">Enhancing, transcoding and export<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/aireviewirush.com\/?p=4874\/#Get_began_sith_Media3_160\" title=\"Get began sith Media3 1.6.0\">Get began sith Media3 1.6.0<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Playback_MediaSession_and_UI\"><\/span><span style=\"font-size: x-large;\">Playback, MediaSession and UI<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>ExoPlayer now helps <a href=\"https:\/\/developer.apple.com\/streaming\/GettingStartedWithHLSInterstitials.pdf\" target=\"_blank\" rel=\"noopener\">HLS interstitials<\/a> for advert insertion in HLS streams. To play these advertisements utilizing ExoPlayer&#8217;s built-in playlist assist, cross an <span style=\"color: #0d904f; font-family: courier;\">HlsInterstitialsAdsLoader.AdsMediaSourceFactory<\/span> because the media supply manufacturing unit when creating the participant. For extra info see the official <a href=\"https:\/\/developer.android.com\/media\/media3\/exoplayer\/hls#interstitials\" target=\"_blank\" rel=\"noopener\">documentation<\/a>.<\/p>\n<p>This launch additionally contains experimental assist for &#8216;pre-warming&#8217; decoders. With out pre-warming, transitions from one playlist merchandise to the subsequent might not be seamless in some circumstances, for instance, we might have to modify codecs, or decode some video frames to succeed in the beginning place of the brand new media merchandise. With pre-warming enabled, a secondary video renderer can begin decoding the brand new media merchandise earlier, giving near-seamless transitions. You may do this function out by <a href=\"https:\/\/github.com\/androidx\/media\/blob\/1.6.0\/libraries\/exoplayer\/src\/main\/java\/androidx\/media3\/exoplayer\/DefaultRenderersFactory.java#L277\" target=\"_blank\" rel=\"noopener\">enabling it<\/a> on the <span style=\"color: #0d904f; font-family: courier;\">DefaultRenderersFactory<\/span>. We&#8217;re actively engaged on additional enhancements to the best way we work together with decoders, together with including a &#8216;quick in search of mode&#8217; so keep tuned for updates on this space.<\/p>\n<p>Media3 1.6.0 introduces a brand new <span style=\"color: #0d904f; font-family: courier;\">media3-ui-compose<\/span> module that comprises performance for constructing Compose UIs for playback. You will discover a reference implementation within the <a href=\"https:\/\/github.com\/androidx\/media\/tree\/release\/demos\/compose\" target=\"_blank\" rel=\"noopener\">Media3 Compose demo<\/a> and be taught extra in <a href=\"https:\/\/developer.android.com\/media\/media3\/ui\/compose\" target=\"_blank\" rel=\"noopener\">Getting began with Compose-based UI<\/a>. At this level we&#8217;re offering a primary set of foundational state courses that hyperlink to the Participant, along with some primary composable constructing blocks. You should use these to construct your personal personalized UI widgets. We plan to publish default Materials-themed composables in a later launch.<\/p>\n<p>Another enhancements on this launch embody: shifting system calls off the applying&#8217;s essential thread to the background (which ought to scale back <a href=\"https:\/\/developer.android.com\/topic\/performance\/vitals\/anr\" target=\"_blank\" rel=\"noopener\">ANRs<\/a>), a brand new decoder module wrapping <span style=\"color: #0d904f; font-family: courier;\">libmpegh<\/span> (for bundling object-based audio decoding in your app), and a repair for the Solid extension for apps focusing on API 34+. There are additionally fixes throughout MPEG-TS and WebVTT extraction, DRM, downloading\/caching, MediaSession <a href=\"https:\/\/github.com\/androidx\/media\/blob\/1.6.0\/RELEASENOTES.md\" target=\"_blank\" rel=\"noopener\">and extra<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Media_extraction_and_body_retrieval\"><\/span><span style=\"font-size: x-large;\">Media extraction and body retrieval<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The brand new <span style=\"color: #0d904f; font-family: courier;\">MediaExtractorCompat<\/span> is a drop-in substitute for the framework <span style=\"color: #0d904f; font-family: courier;\">MediaExtractor<\/span> however applied utilizing Media3&#8217;s extractors. In the event you&#8217;re utilizing the Android framework <span style=\"color: #0d904f; font-family: courier;\">MediaExtractor<\/span>, contemplate migrating to get constant habits throughout units and scale back crashes.<\/p>\n<p>We have additionally added experimental assist for retrieving video frames in a brand new class <span style=\"font-family: courier;\"><a href=\"https:\/\/github.com\/androidx\/media\/blob\/1.6.0\/libraries\/transformer\/src\/main\/java\/androidx\/media3\/transformer\/ExperimentalFrameExtractor.java\" target=\"_blank\" rel=\"noopener\">ExperimentalFrameExtractor<\/a><\/span>, which might act as a substitute for the <span style=\"color: #0d904f; font-family: courier;\">MediaMetadataRetriever <a href=\"https:\/\/developer.android.com\/reference\/android\/media\/MediaMetadataRetriever#getFrameAtTime%28%29\" target=\"_blank\" rel=\"noopener\">getFrameAtTime<\/a><\/span> strategies. There are just a few advantages over the framework implementation: HDR enter is supported (by default tonemapping all the way down to SDR, however with the choice to provide HLG bitmaps from Android 14 onwards), Media3 results could be utilized (together with <span style=\"color: #0d904f; font-family: courier;\">Presentation<\/span> to scale the output to a desired measurement) and it runs quicker on some units on account of shifting coloration area conversion to the GPU. Here is an instance of utilizing the brand new API:<\/p>\n<p><!--Kotlin--><\/p>\n<div style=\"background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;\">\n<pre style=\"line-height: 125%; margin: 0px;\"><span style=\"color: green; font-weight: bold;\">val<\/span> bitmap =\n    withContext(Dispatchers.IO) {\n        <span style=\"color: green; font-weight: bold;\">val<\/span> configuration =\n            ExperimentalFrameExtractor.Configuration\n                .Builder()\n                .setExtractHdrFrames(<span style=\"color: green; font-weight: bold;\">true<\/span>)\n                .construct()\n        <span style=\"color: green; font-weight: bold;\">val<\/span> frameExtractor =\n            ExperimentalFrameExtractor(\n                context,\n                configuration,\n            )\n\n        frameExtractor.setMediaItem(mediaItem, <span style=\"color: #408080; font-style: italic;\">\/*results*\/<\/span> listOf())\n\n        <span style=\"color: green; font-weight: bold;\">val<\/span> body = frameExtractor.getFrame(timestamps).await()\n        frameExtractor.launch()\n        body.bitmap\n    }\n<\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Enhancing_transcoding_and_export\"><\/span><span style=\"font-size: x-large;\">Enhancing, transcoding and export<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Media3 1.6.0 contains efficiency, stability and purposeful enhancements in Transformer. Highlights embody: assist for transcoding\/transmuxing Dolby Imaginative and prescient streams on units that assist this format and a brand new <span style=\"color: #0d904f; font-family: courier;\">MediaProjectionAssetLoader<\/span> for recording from the display screen, which you&#8217;ll be able to check out within the Transformer demo app.<\/p>\n<p>Take a look at <a href=\"https:\/\/android-developers.googleblog.com\/2025\/03\/media-processing-performance-jetpack-media3-transformer.html\" target=\"_blank\" rel=\"noopener\">Widespread media processing operations with Jetpack Media3 Transformer<\/a> for some code snippets displaying the best way to course of media with Transformer, and tricks to scale back latency.<\/p>\n<p>This launch additionally features a new Kotlin-based demo app showcasing Media3&#8217;s video results framework. You may choose from quite a lot of video results and preview them through <span style=\"color: #0d904f; font-family: courier;\">ExoPlayer.setVideoEffects<\/span>.<\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Media3 video effect animation\" border=\"0\" height=\"640\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjnVJK91dK-NBUjFUJquXahjh82nOwM6dYhksYgbXRTAfhFuJgBnkshGG3ItPLvHLQjf7JE1JU9SbQSX8umcAfSJ8v-ifAQirSED0K18PRWc1OUjH4YI8Hly9Hso7qv-tCJhol_hAmbSpPhQDMkey2OhcmnC7BWAiVxmQhJcWjGOLx6MsG0tTd9-yuNS44\/w295-h640\/Media3-video-effect.gif\" width=\"295\"\/><\/div>\n<p><imgcaption><center><em>Animation displaying distinction adjustment and a confetti impact within the new demo app<\/em><\/center><\/imgcaption><\/image><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Get_began_sith_Media3_160\"><\/span><span style=\"font-size: x-large;\">Get began sith Media3 1.6.0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Please get in contact through the <a href=\"https:\/\/github.com\/androidx\/media\/issues\" target=\"_blank\" rel=\"noopener\">Media3 situation Tracker<\/a> when you run into any bugs, or if in case you have questions or function requests. We sit up for listening to from you!<\/p>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Posted by Andrew Lewis \u2013 Software program Engineer This text is cross-published on Medium This launch features a host of bug fixes, efficiency enhancements and new options. Learn on to seek out out extra, and as at all times please try the full launch notes for a complete overview of adjustments on this launch. Playback, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4876,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-4874","post","type-post","status-publish","format-standard","has-post-thumbnail","category-mobile"],"_links":{"self":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/4874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4874"}],"version-history":[{"count":1,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/4874\/revisions"}],"predecessor-version":[{"id":4875,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/4874\/revisions\/4875"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/media\/4876"}],"wp:attachment":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}