{"id":19572,"date":"2025-12-26T04:16:39","date_gmt":"2025-12-25T19:16:39","guid":{"rendered":"https:\/\/aireviewirush.com\/?p=19572"},"modified":"2025-12-26T04:16:40","modified_gmt":"2025-12-25T19:16:40","slug":"android-builders-weblog-media3-1-9-0","status":"publish","type":"post","link":"https:\/\/aireviewirush.com\/?p=19572","title":{"rendered":"Android Builders Weblog: Media3 1.9.0"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>Media3 1.9.0 is out! Apart from the standard bug fixes and efficiency enhancements, the newest launch additionally incorporates <b>4<\/b> new or largely rewritten modules:<br \/><span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">We additionally added caching and reminiscence administration enhancements to <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">PreloadManager<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">, and offered a number of new <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">ExoPlayer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">, <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Transformer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> and <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">MediaSession<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> simplifications.\u00a0<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">This launch additionally offers you the primary experimental entry to <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">CompositionPlayer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> to preview media edits.\u00a0\u00a0<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"><br \/><\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Learn on to seek out out extra, and as all the time please try the total <\/span><a href=\"https:\/\/github.com\/androidx\/media\/releases\/tag\/1.9.0\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">launch notes<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> for a complete overview of modifications on this launch.<\/span><\/p>\n<p><\/span><\/p>\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-6a3681d514774\" ><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-6a3681d514774\"  type=\"checkbox\" id=\"item-6a3681d514774\"><\/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-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Extract_metadata_and_frames_exterior_of_playback\" title=\"Extract metadata and frames exterior of playback\">Extract metadata and frames exterior of playback<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Construct_a_fundamental_Material3_Compose_Media_UI_in_just_some_steps\" title=\"Construct a fundamental Material3 Compose Media UI in just some steps\">Construct a fundamental Material3 Compose Media UI in just some steps<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Routinely_deal_with_transitions_between_Solid_and_native_playbacks\" title=\"Routinely deal with transitions between Solid and native playbacks\">Routinely deal with transitions between Solid and native playbacks<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Constant_AV1_playback_with_the_rewritten_extension_primarily_based_on_dav1d\" title=\"Constant AV1 playback with the rewritten extension primarily based on dav1d\">Constant AV1 playback with the rewritten extension primarily based on dav1d<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Combine_caching_and_reminiscence_administration_into_PreloadManager\" title=\"Combine caching and reminiscence administration into PreloadManager\">Combine caching and reminiscence administration into PreloadManager<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Depend_on_new_simplified_default_behaviors_in_ExoPlayer\" title=\"Depend on new simplified default behaviors in ExoPlayer\">Depend on new simplified default behaviors in ExoPlayer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Simplify_your_media_button_preferences_in_MediaSession\" title=\"Simplify your media button preferences in MediaSession\">Simplify your media button preferences in MediaSession<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#CompositionPlayer_for_real-time_preview\" title=\"CompositionPlayer for real-time preview\">CompositionPlayer for real-time preview<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#InAppMuxer_as_a_default_muxer_in_Transformer\" title=\"InAppMuxer as a default muxer in Transformer\">InAppMuxer as a default muxer in Transformer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#New_velocity_adjustment_APIs\" title=\"New velocity adjustment APIs\">New velocity adjustment APIs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/aireviewirush.com\/?p=19572\/#Introducing_observe_varieties_for_EditedMediaItemSequence\" title=\"Introducing observe varieties for EditedMediaItemSequence\">Introducing observe varieties for EditedMediaItemSequence<\/a><\/li><\/ul><\/nav><\/div>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Extract_metadata_and_frames_exterior_of_playback\"><\/span>Extract metadata and frames exterior of playback<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>There are various instances the place you wish to examine media with out beginning a playback. For instance, you would possibly wish to detect which codecs it incorporates or what its length is, or to retrieve thumbnails.<span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">The brand new <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">media3-inspector<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> module combines all utilities to examine media with out playback in a single place:<\/span><\/p>\n<ul style=\"margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;\">\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">MetadataRetriever<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> to learn length, format and static metadata from a <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">MediaItem<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">.<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">FrameExtractor<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> to get frames or thumbnails from an merchandise.\u00a0<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">MediaExtractorCompat<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> as a direct substitute for the Android platform <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">MediaExtractor<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> class, to get detailed details about samples within the file.<\/span><\/p>\n<\/li>\n<\/ul>\n<p><\/p>\n<div style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: left;\"><span id=\"docs-internal-guid-19ff3265-7fff-951a-00e8-97e17d42f5c6\"><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">MetadataRetriever<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> and <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">FrameExtractor<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> observe a easy <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">AutoCloseable<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> sample. Take a look at our <\/span><a href=\"https:\/\/developer.android.com\/media\/media3\/inspector\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">new information pages<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> for extra particulars.<\/span><\/span><\/div>\n<pre style=\"color: #333333; line-height: 16.25px; margin: 0px;\"><span style=\"color: blue;\">droop<\/span> <span style=\"color: blue;\">enjoyable<\/span> extractThumbnail(mediaItem: MediaItem) {\n  FrameExtractor.Builder(context, mediaItem).construct().use {\n    <span style=\"color: blue;\">val<\/span> thumbnail = frameExtractor.getThumbnail().await()\n  } \n}<\/pre>\n<p><\/span><\/p>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Construct_a_fundamental_Material3_Compose_Media_UI_in_just_some_steps\"><\/span>Construct a fundamental Material3 Compose Media UI in just some steps<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In earlier releases we began offering connector code between Compose UI components and your Participant occasion. With Media3 1.9.0, we added a brand new module media3-ui-compose-material3 with fully-styled Material3 buttons and content material components. They can help you construct a media UI in just some steps, whereas offering all the flexibleness to customise model. In case you want to construct your individual UI model, you need to use the constructing blocks that care for all of the replace and connection logic, so that you solely want to focus on designing the UI factor.\u00a0<span><span id=\"docs-internal-guid-40b94424-7fff-7cc7-c3ca-8ece4e4a6a6c\"><span style=\"font-family: inherit;\"><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Please try our <\/span><a href=\"https:\/\/developer.android.com\/media\/media3\/ui\/compose\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">prolonged information pages<\/span><\/a><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> for the Compose UI modules.<\/span><\/span><\/span><\/span><\/div>\n<div><span><span style=\"white-space-collapse: preserve;\"><br \/><\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">We&#8217;re additionally nonetheless engaged on much more Compose elements, like a prebuilt search bar, an entire out-of-the-box substitute for <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">PlayerView<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">, in addition to subtitle and advert integration.<\/span><\/p>\n<pre style=\"color: #333333; line-height: 16.25px; margin: 0px;\">@Composable\n<span style=\"color: blue;\">enjoyable<\/span> SimplePlayerUI(participant: Participant, modifier: Modifier = Modifier) {\n  Column(modifier) {\n    ContentFrame(participant)  <span style=\"color: green;\">\/\/ Video floor and shutter logic<\/span>\n    Row (Modifier.align(Alignment.CenterHorizontally)) {                 \n      SeekBackButton(participant)   <span style=\"color: green;\">\/\/ Easy controls<\/span>\n      PlayPauseButton(participant)\n      SeekForwardButton(participant)\n    }\n  }\n}<\/pre>\n<p><\/p>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><span style=\"border: none; display: inline-block; height: 186px; margin-left: 1em; margin-right: 1em; overflow: hidden; width: 283px;\"><img loading=\"lazy\" decoding=\"async\" height=\"186\" src=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEjMA3Yl64E8oDHTQzdKz0cwsgb14dYXtXHx_L9Huun81lBUvzJBzW2TiEuvgbFrfY092xKoAUDXoq3iYAz2L-w5A0tsqBgBd3vN68_VQ1r9HUxbXwzx8sjT2ukwTuGW_14XB8t-_vZ_W4QCTBQpgm9_jWYP5jJJHkzVJVtqSlvkcH8DWegiiIybk2Swkl0\" style=\"margin-left: 0px; margin-top: 0px;\" width=\"283\" alt=\"\"><\/span><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Easy Compose participant UI with out-of-the-box components<\/span><\/p>\n<p><\/span><\/p>\n<p><h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Routinely_deal_with_transitions_between_Solid_and_native_playbacks\"><\/span>Routinely deal with transitions between Solid and native playbacks<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/p>\n<p>The <a href=\"https:\/\/developer.android.com\/media\/media3\/cast\/create-castplayer\" target=\"_blank\" rel=\"noopener\">CastPlayer<\/a> within the\u00a0<span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; white-space-collapse: preserve;\">media3-cast<\/span>\u00a0module has been rewritten to robotically deal with transitions between native playback (for instance with\u00a0<span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; white-space-collapse: preserve;\">ExoPlayer<\/span>) and distant Solid playback.<\/div>\n<div><span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Once you arrange your <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">MediaSession<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">, merely construct a <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">CastPlayer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> round your <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">ExoPlayer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> and add a <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">MediaRouteButton<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> to your UI and also you&#8217;re finished!<\/span><\/p>\n<pre style=\"color: #333333; line-height: 16.25px; margin: 0px;\"><span style=\"color: green;\">\/\/ MediaSession setup with CastPlayer <\/span>\n<span style=\"color: blue;\">val<\/span> exoPlayer = ExoPlayer.Builder(context).construct()\n<span style=\"color: blue;\">val<\/span> castPlayer = CastPlayer.Builder(context).setLocalPlayer(exoPlayer).construct()\n<span style=\"color: blue;\">val<\/span> session = MediaSession.Builder(context, participant)\n<span style=\"color: green;\">\/\/ MediaRouteButton in UI <\/span>\n@Composable <span style=\"color: blue;\">enjoyable<\/span> UIWithMediaRouteButton() {\n  MediaRouteButton()\n}<\/pre>\n<p><\/span><span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"\/><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> <\/span><img loading=\"lazy\" decoding=\"async\" height=\"151\" src=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEinO8BZ9H36QVSMLVFPkdHcWlolu50qHM_Fzj555r0bkZcr29XCqtAs05raRu2aAOhE2TPp6Zb4T-LZnKrMTHJRPrKkZD35yxIJm2uqtIqJODXPgHd1bMiB2Xoq4xujTmBFsg1NHn6_qB0YZb_SyAxe58i6JCt6BgJw7ksR8Rv2BdECAko_n91I-hycUzk\" style=\"font-family: Arial, sans-serif; font-size: 11pt; margin-left: 0px; margin-top: 0px; text-align: left; white-space-collapse: preserve;\" width=\"336\" alt=\"\"><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">New CastPlayer integration in Media3 session demo app<\/span><\/p>\n<p><\/span><\/p>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Constant_AV1_playback_with_the_rewritten_extension_primarily_based_on_dav1d\"><\/span>Constant AV1 playback with the rewritten extension primarily based on dav1d<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The 1.9.0 launch incorporates a totally rewritten AV1 extension module primarily based on the favored <a href=\"https:\/\/github.com\/videolan\/dav1d\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #1155cc;\">dav1d<\/span><\/a> library. <span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">As with all extension decoder modules, please notice that it requires <\/span><a href=\"https:\/\/github.com\/androidx\/media\/tree\/release\/libraries\/decoder_av1#readme\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">constructing from supply <\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">to bundle the related native code appropriately. Bundling a decoder offers consistency and format help throughout all units, however as a result of it runs the decoding in your course of, it is best suited to content material you possibly can belief.\u00a0<\/span><\/p>\n<p><\/span><\/p>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Combine_caching_and_reminiscence_administration_into_PreloadManager\"><\/span>Combine caching and reminiscence administration into PreloadManager<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-size: normal;\"><span face=\"Arial, sans-serif\"><span style=\"font-weight: normal; white-space-collapse: preserve;\">We made our <\/span><\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\">PreloadManager<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\"> even higher as properly. It already enabled you to preload media into reminiscence exterior of playback after which seamlessly hand it over to a participant when wanted. Though fairly performant, you continue to needed to be cautious to not exceed reminiscence limits by by accident preloading an excessive amount of. So with Media3 1.9.0, we added two options that makes this so much simpler and extra steady:<\/span><\/span><\/p>\n<p><span><\/p>\n<ol style=\"margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;\">\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; list-style-type: decimal; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">Caching help \u2013<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> When defining how far to preload, now you can select <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">PreloadStatus.specifiedRangeCached(0, 5000)<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> as a goal state for preloaded gadgets. This can add the desired vary to your cache on disk as an alternative of loading the info to reminiscence. With this, you possibly can present a a lot bigger vary of things for preloading as those additional away from the present merchandise now not must occupy reminiscence. Be aware that this requires setting a <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">Cache<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> in <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">DefaultPreloadManager.Builder<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">.<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; list-style-type: decimal; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">Automated reminiscence administration \u2013 <\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">We additionally up to date our <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">LoadControl<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> interface to raised deal with the preload case so that you at the moment are capable of set an express higher reminiscence restrict for all preloaded gadgets in reminiscence. It is 144\u00a0MB by default, and you&#8217;ll configure the restrict in <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">DefaultLoadControl.Builder<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">. The <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">DefaultPreloadManager<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> will robotically cease preloading as soon as the restrict is reached, and robotically releases reminiscence of decrease precedence gadgets if required.<\/span><\/p>\n<\/li>\n<\/ol>\n<p><\/span><\/p>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Depend_on_new_simplified_default_behaviors_in_ExoPlayer\"><\/span>Depend on new simplified default behaviors in ExoPlayer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>As all the time, we added plenty of incremental enhancements to ExoPlayer as properly. To call just some:<span><\/p>\n<ul style=\"margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;\">\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">Mute and unmute \u2013 <\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">We already had a <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">setVolume<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> technique, however have now added the comfort <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">mute<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> and <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">unmute<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> strategies to simply restore the earlier quantity with out holding observe of it your self.<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">Caught participant detection \u2013 <\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">In some uncommon instances the participant can get caught in a buffering or taking part in state with out making any progress, for instance, on account of codec points or misconfigurations. Your customers will likely be irritated, however you by no means see these points in your analytics! To make this extra apparent, the participant now stories a <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">StuckPlayerException<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\"> when it detects a caught state.<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">Wakelock by default \u2013 <\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 400; text-wrap-mode: wrap; vertical-align: baseline;\">The wake lock administration was beforehand opt-in, leading to laborious to seek out edge instances the place playback progress could be delayed so much when working within the background. Now this function is opt-out, so you do not have to fret about it and can even take away all handbook wake lock dealing with round playback.<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"font-family: Arial, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; text-wrap-mode: wrap; vertical-align: baseline;\">Simplified setting for CC button logic<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> <\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; text-wrap-mode: wrap; vertical-align: baseline;\">\u2013<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> Altering <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">TrackSelectionParameters<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> to say &#8220;flip subtitles on\/off&#8221; was surprisingly laborious to get proper, so we added a easy boolean <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">selectTextByDefault<\/span><span style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\"> choice for this use case.<\/span><\/p>\n<\/li>\n<\/ul>\n<p><\/span><\/p>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Simplify_your_media_button_preferences_in_MediaSession\"><\/span>Simplify your media button preferences in MediaSession<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Till now, defining your preferences for which buttons ought to present up within the media notification drawer on Android Auto or WearOS required defining customized instructions and buttons, even in case you merely needed to set off a typical participant technique.<span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Media3 1.9.0 has new performance to make this so much easier \u2013 now you can <\/span><a href=\"https:\/\/developer.android.com\/media\/media3\/session\/control-playback#commands\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">outline your media button preferences<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> with a typical participant command, requiring no customized command dealing with in any respect.<\/span><\/p>\n<pre style=\"color: #333333; line-height: 16.25px; margin: 0px;\">session.setMediaButtonPreferences(listOf(\n    CommandButton.Builder(CommandButton.ICON_FAST_FORWARD) <span style=\"color: green;\">\/\/ select an icon<\/span>\n      .setDisplayName(R.string.skip_forward)\n      .setPlayerCommand(Participant.COMMAND_SEEK_FORWARD) <span style=\"color: green;\">\/\/ select an motion <\/span>\n      .construct()\n))<\/pre>\n<p><\/p>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><span style=\"border: none; display: inline-block; height: 180px; margin-left: 1em; margin-right: 1em; overflow: hidden; width: 347px;\"><img loading=\"lazy\" decoding=\"async\" height=\"180\" src=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEiR2wrBZE2z7ajbDstQUVEPXzS-yu-JMHJ1z9tHp_xwAQnjwGCDVGmLSySyMJDjIWJ08sp1LhimZY0z-jUFTGc6gOTrtuKjPil0iBx603GiIQceEk5vBtyzeSkip5DyCZodIpzvGUeb_uiETZEwoQU1dfvB0V8Hqrxw2ktOA7C3MBVY6EIJeCIh9WI5w24\" style=\"margin-left: 0px; margin-top: 0px;\" width=\"347\" alt=\"\"><\/span><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Media button preferences with quick ahead button<\/span><\/p>\n<p><\/span><\/p>\n<p><h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"CompositionPlayer_for_real-time_preview\"><\/span>CompositionPlayer for real-time preview<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span face=\"Arial, sans-serif\"><span style=\"white-space-collapse: preserve;\">The 1.9.0 launch introduces CompositionPlayer underneath a brand new <\/span><\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">@ExperimentalApi<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> annotation. The annotation signifies that it&#8217;s obtainable for experimentation, however remains to be underneath growth.\u00a0<\/span><\/p>\n<p><span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">CompositionPlayer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> is a brand new element within the Media3 enhancing APIs designed for real-time preview of media edits. Constructed upon the acquainted Media3 <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Participant<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> interface, <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">CompositionPlayer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> permits customers to see their modifications in motion earlier than committing to the export course of. It makes use of the identical <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Composition<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> object that you&#8217;d go to <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Transformer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> for exporting, streamlining the enhancing workflow by unifying the info mannequin for preview and export.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">We encourage you to begin utilizing <\/span><a href=\"https:\/\/developer.android.com\/reference\/androidx\/media3\/transformer\/CompositionPlayer\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">CompositionPlayer<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> and share <\/span><a href=\"https:\/\/github.com\/androidx\/media\/issues\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">your suggestions<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">, and hold an eye fixed out for forthcoming posts and updates to the documentation for extra particulars.<\/span><\/p>\n<p><\/span><\/p>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"InAppMuxer_as_a_default_muxer_in_Transformer\"><\/span>InAppMuxer as a default muxer in Transformer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div style=\"line-height: 1.38; margin-bottom: 6pt; margin-top: 18pt; text-align: left;\"><span style=\"font-size: normal;\"><span face=\"Arial, sans-serif\" style=\"font-weight: normal;\"><span style=\"white-space-collapse: preserve;\">Transformer now makes use of <\/span><\/span><a href=\"https:\/\/developer.android.com\/reference\/androidx\/media3\/transformer\/InAppMp4Muxer\" style=\"font-weight: normal; text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">InAppMp4Muxer<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\"> because the default muxer for writing media container recordsdata. Internally, <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\">InAppMp4Muxer<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\"> is dependent upon the Media3 <\/span><a href=\"https:\/\/developer.android.com\/reference\/androidx\/media3\/muxer\/package-summary\" style=\"font-weight: normal; text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">Muxer<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\"> module, offering constant behaviour throughout all API variations.\u00a0<\/span><\/span><\/div>\n<p><span><\/p>\n<div style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: left;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Be aware that whereas Transformer now not makes use of the Android platform&#8217;s <\/span><a href=\"https:\/\/developer.android.com\/reference\/android\/media\/MediaMuxer\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">MediaMuxer<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> by default, you possibly can nonetheless present <\/span><span face=\"Arial, sans-serif\" style=\"color: #188038; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">FrameworkMuxer.Manufacturing unit<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> by way of <\/span><a href=\"https:\/\/developer.android.com\/reference\/androidx\/media3\/transformer\/Transformer.Builder#setMuxerFactory(androidx.media3.muxer.Muxer.Factory)\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">setMuxerFactory<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> in case your use case requires it.<\/span><\/div>\n<p><\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 6pt; margin-top: 18pt;\"\/>\n<h3 style=\"line-height: 1.38; margin-bottom: 6pt; margin-top: 18pt; text-align: left;\"><span class=\"ez-toc-section\" id=\"New_velocity_adjustment_APIs\"><\/span>New velocity adjustment APIs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-size: normal;\"><span face=\"Arial, sans-serif\"><span style=\"font-weight: normal; white-space-collapse: preserve;\">The 1.9.0 launch simplifies velocity changes APIs for media enhancing. We have launched new strategies straight on <\/span><\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\">EditedMediaItem.Builder<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\"> to manage velocity, making the API extra intuitive. Now you can change the velocity of a clip by calling <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\">setSpeed(SpeedProvider supplier)<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\"> on the <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\">EditedMediaItem.Builder<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: normal; vertical-align: baseline; white-space-collapse: preserve;\">:<\/span><\/span><\/p>\n<p><span><\/p>\n<pre style=\"color: #333333; line-height: 16.25px; margin: 0px;\"><span style=\"color: blue;\">val<\/span> speedProvider = <span style=\"color: blue;\">object<\/span> : <span style=\"color: #2b91af;\">SpeedProvider<\/span> {\n    <span style=\"color: blue;\">override<\/span> <span style=\"color: blue;\">enjoyable<\/span> getSpeed(presentationTimeUs: <span style=\"color: #2b91af;\">Lengthy<\/span>): <span style=\"color: #2b91af;\">Float<\/span> {\n        <span style=\"color: blue;\">return<\/span> velocity\n    }\n\n    <span style=\"color: blue;\">override<\/span> <span style=\"color: blue;\">enjoyable<\/span> getNextSpeedChangeTimeUs(timeUs: <span style=\"color: #2b91af;\">Lengthy<\/span>): <span style=\"color: #2b91af;\">Lengthy<\/span> {\n        <span style=\"color: blue;\">return<\/span> C.TIME_UNSET\n    }\n}\n\nEditedMediaItem speedEffectItem = EditedMediaItem.Builder(mediaItem)\n    .setSpeed(speedProvider)\n    .construct()<\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">This new method replaces the earlier technique of utilizing <\/span><span style=\"color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Results#createExperimentalSpeedChangingEffects()<\/span><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">, which we have deprecated and can take away in a future launch.<\/span><\/p>\n<p><\/span><\/p>\n<h3 style=\"text-align: left;\"><span class=\"ez-toc-section\" id=\"Introducing_observe_varieties_for_EditedMediaItemSequence\"><\/span>Introducing observe varieties for EditedMediaItemSequence<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/div>\n<div>Within the 1.9.0 launch,\u00a0<span style=\"background-color: #f8f9fa; color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; white-space-collapse: preserve;\">EditedMediaItemSequence<\/span>\u00a0requires specifying desired output observe varieties throughout sequence creation. This variation ensures observe dealing with is extra express and strong throughout the whole Composition. <span><\/p>\n<p dir=\"ltr\" style=\"background-color: white; line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 8pt;\"><span face=\"&quot;Google Sans&quot;, sans-serif\" style=\"background-color: transparent; color: #202124; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">That is finished by way of a brand new <\/span><span style=\"background-color: #f8f9fa; color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">EditedMediaItemSequence.Builder<\/span><span face=\"&quot;Google Sans&quot;, sans-serif\" style=\"background-color: transparent; color: #202124; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> constructor that accepts a set of observe varieties (e.g., <\/span><span style=\"background-color: #f8f9fa; color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">C.TRACK_TYPE_AUDIO<\/span><span face=\"&quot;Google Sans&quot;, sans-serif\" style=\"background-color: transparent; color: #202124; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">, <\/span><span style=\"background-color: #f8f9fa; color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">C.TRACK_TYPE_VIDEO<\/span><span face=\"&quot;Google Sans&quot;, sans-serif\" style=\"background-color: transparent; color: #202124; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">).\u00a0<\/span><\/p>\n<p dir=\"ltr\" style=\"background-color: white; line-height: 1.2; margin-bottom: 8pt; margin-top: 0pt;\"><span face=\"&quot;Google Sans&quot;, sans-serif\" style=\"background-color: transparent; color: #202124; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">To simplify creation, we have added new static comfort strategies:<\/span><\/p>\n<ul style=\"margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;\">\n<li aria-level=\"1\" dir=\"ltr\" style=\"color: #202124; font-family: &quot;Google Sans&quot;, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"background-color: white; line-height: 1.2; margin-bottom: 0pt; margin-top: 8pt;\"><span style=\"background-color: #f8f9fa; color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">EditedMediaItemSequence.withAudioFrom(Record&lt;EditedMediaItem&gt;)<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"color: #202124; font-family: &quot;Google Sans&quot;, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"background-color: white; line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: #f8f9fa; color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">EditedMediaItemSequence.withVideoFrom(Record&lt;EditedMediaItem&gt;)<\/span><\/p>\n<\/li>\n<li aria-level=\"1\" dir=\"ltr\" style=\"color: #202124; font-family: &quot;Google Sans&quot;, sans-serif; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;\">\n<p dir=\"ltr\" role=\"presentation\" style=\"background-color: white; line-height: 1.2; margin-bottom: 8pt; margin-top: 0pt;\"><span style=\"background-color: #f8f9fa; color: #188038; font-family: &quot;Roboto Mono&quot;, monospace; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-wrap-mode: wrap; vertical-align: baseline;\">EditedMediaItemSequence.withAudioAndVideoFrom(Record&lt;EditedMediaItem&gt;)<\/span><\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\" style=\"background-color: white; line-height: 1.2; margin-bottom: 0pt; margin-top: 8pt; padding: 0pt 0pt 8pt;\"><span face=\"&quot;Google Sans&quot;, sans-serif\" style=\"background-color: transparent; color: #202124; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">We encourage you emigrate to the brand new constructor or the comfort strategies for clearer and extra dependable sequence definitions.<\/span><\/p>\n<p dir=\"ltr\" style=\"background-color: white; line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 8pt;\"><span face=\"&quot;Google Sans&quot;, sans-serif\" style=\"background-color: transparent; color: #202124; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Instance of making a video-only sequence:<\/span><\/p>\n<pre style=\"color: #333333; line-height: 16.25px; margin: 0px;\">EditedMediaItemSequence videoOnlySequence =\n    EditedMediaItemSequence.Builder(setOf(C.TRACK_TYPE_VIDEO))\n        .addItem(editedMediaItem)\n        .construct()<\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">&#8212;<\/span><\/p>\n<p><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\">Please get in contact by way of the <\/span><a href=\"https:\/\/github.com\/androidx\/media\/issues\" style=\"text-decoration-line: none;\" target=\"_blank\" rel=\"noopener\"><span face=\"Arial, sans-serif\" style=\"color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;\">Media3 problem Tracker<\/span><\/a><span face=\"Arial, sans-serif\" style=\"font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;\"> in case you run into any bugs, or if in case you have questions or function requests. We look ahead to listening to from you!<\/span><\/span><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Media3 1.9.0 is out! Apart from the standard bug fixes and efficiency enhancements, the newest launch additionally incorporates 4 new or largely rewritten modules: We additionally added caching and reminiscence administration enhancements to PreloadManager, and offered a number of new ExoPlayer, Transformer and MediaSession simplifications.\u00a0 This launch additionally offers you the primary experimental entry to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":19574,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-19572","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\/19572","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=19572"}],"version-history":[{"count":1,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/19572\/revisions"}],"predecessor-version":[{"id":19573,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/19572\/revisions\/19573"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/media\/19574"}],"wp:attachment":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}