Close Menu
Nekopoi apk

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    4 Great Apps and Games for the NBA Season

    October 20, 2025

    Elevating your Android deep linking

    October 20, 2025

    Amazon’s AWS Disruption Creates Outages for Hundreds of Websites for Hours

    October 20, 2025
    Facebook X (Twitter) Instagram
    Nekopoi apk
    Get the NekoPoi APK
    • 🏠 Home
    • 📲 For iOS
    • 💻 For pc
    • 🔃 Old Version
    • 📝 Latest Updates
    Nekopoi apk
    Home»Latest Updates»Android Developers Blog: Media3 1.8.0
    Latest Updates

    Android Developers Blog: Media3 1.8.0

    David I. MeeksBy David I. MeeksAugust 11, 2025No Comments6 Mins Read
    Share
    Facebook Twitter LinkedIn Pinterest Email Copy Link

    [ad_1]


    Posted by Toni Heidenreich – Engineering Manager

    This release includes several bug fixes, performance improvements, and new features. Read on to find out more, and as always please check out the full release notes for a comprehensive overview of changes in this release.

    Scrubbing in ExoPlayer

    This release introduces a scrubbing mode in ExoPlayer, designed to optimize performance for frequent, user-driven seeks, like dragging a seek bar handle. You can enable it with ExoPlayer.setScrubbingModeEnabled(true). We’ve also integrated this into PlayerControlView in the UI module where it can be enabled with either time_bar_scrubbing_enabled=”true” in XML or the setTimeBarScrubbingEnabled(boolean) method. Media3 1.8.0 contains the first batch of scrubbing improvements, with more to come in 1.9.0!

    moving image showing repeated seeking while scrubbing with scrubbing mode off in ExoPlayer

    Repeated seeking while scrubbing with scrubbing mode OFF

    moving image showing repeated seeking while scrubbing with scrubbing mode on in ExoPlayer

    Repeated seeking while scrubbing with scrubbing mode ON

    Live streaming ads with HLS interstitials

    Extending the initial support for VOD in Media3 1.6.0, HlsInterstitialsAdsLoader now supports live streams and asset lists for all your server-guided ad insertion (SGAI) needs. The Google Ads Manager team explains how SGAI works. Follow our documentation for how to integrate HLS interstitals into your app.

    chart of HLS intertitials processing flow from content server to ads server to Exoplayer

    HLS interstitials processing flow

    Duration retrieval without playback

    MetadataRetriever has been significantly updated – it’s now using an AutoCloseable pattern and lets you retrieve the duration of media items without playback. This means Media3 now offers the full functionality of the Android platform MediaMetadataRetriever but without having to worry about device specific quirks and cross-process communication (some parts like frame extraction are still experimental, but we’ll integrate them properly in the future).

    try {
      MetadataRetriever.Builder(context, mediaItem).build().use {
         val trackInfo = it.retrieveTrackGroups().await()
         val duration = it.retrieveDurationUs().await()
      }
    } catch (e: IOException) {
      handleFailure(e)
    }
    

    Partial downloads, XR audio routing and more efficient playback

    There were several other improvements and bug fixes across ExoPlayer and playback related components. To name just a few:

      • Downloader implementations now support partial downloads, with a new PreCacheHelper to organize manual caching of single items. This will be integrated into ExoPlayer’s DefaultPreloadManager in Media3 1.9.0 for an even more seamless caching and preloading experience.
      • When created with a Context with a virtual device ID, ExoPlayer now automatically routes the audio to the virtual XR device for that ID.
      • We enabled more efficient interactions with Android’s MediaCodec, for example skipping buffers that are not needed earlier in the pipeline.

    Playback resumption in demo app and better notification defaults

    The MediaSession module has a few changes and improvements for notification handling. It’s now keeping notifications for longer by default, for example when playback is paused, stopped or failed, so that a user has more time to resume playback in your app. Notifications for live streams (in particular with DVR windows) also became more useful by removing the confusing DVR window duration and progress from the notification.

    The media session demo app now also supports playback resumption to showcase how the feature can be integrated into your app! It allows the user to resume playback long after your app has been terminated and even after reboot.

    Media resumption notification after device reboot

    Media resumption notification after device reboot

    Faster trim operations with edit list support

    We are continuing to add optimizations for faster trim operations to Transformer APIs. In the new 1.8.0 release, we introduced support for trimming using MP4 edit lists. Call experimentalSetMp4EditListTrimEnabled(true) to make trim-only edits significantly faster.

    val transformer = Transformer.Builder(requireContext())
            .addListener(transformerListener)
            .experimentalSetMp4EditListTrimEnabled(true)
            .build()
    

    A standard trimming operation often requires a full re-transcoding of the video, even for a simple trim. This meant decoding, re-encoding the entire file, which is a time-consuming and resource-intensive process. With MP4 edit list support, Transformer can now perform “trim-only” edits much more efficiently. Instead of re-encoding, it leverages the existing encoded samples and defines a “pre-roll” within the edit list. This pre-roll essentially tells the player where to start playback within an existing encoded sample, effectively skipping the unwanted beginning portion.

    The following diagram illustrates how this works:

    processing overview for faster trim optimizations

    Processing overview for faster trim optimizations

    As illustrated above, each file contains encoded samples and each sample begins with a keyframe. The red line indicates the intended clip point in the original file, allowing us to safely discard two first samples. The major difference in this approach lies in how we handle the third encoded sample. Instead of running a transcoding operation, we transmux this sample and define a pre-roll for a video start position. This significantly accelerates the export operation; however this optimization is only applicable if no other effects are applied. Player implementations may also ignore the pre-roll component of the final video and play from the start of the encoded sample.

    Chipset specific optimizations with CodecDbLite

    CodecDBLite optimizes two elements of encoder configuration on a chipset-by-chipset basis: codec selection and B-frames. Depending on the chipset, these parameters can have either a positive or adverse impact on video quality. CodecDB Lite leverages benchmark data collected on production devices to recommend a configuration that achieves the maximum user-perceived quality for the developer’s target bitrate. By enabling CodecDB Lite, developers can leverage advanced video codecs and features without worrying about whether or not they work on a given device.

    To use CodecDbLite, simply call setEnableCodecDbLite(true) when building the encoder factory:

    val transformer =
        Transformer.Builder()
            .setEncoderFactory(
                DefaultEncoderFactory.Builder()
                    .setEnableCodecDbLite(true)
                    .build()
            )
            .build()
    

    New Composition demo

    The Composition Demo app has been refreshed, and is now built entirely with Kotlin and Compose to showcase advanced multi-asset editing capabilities in Media3. Our team is actively extending the APIs, and future releases will introduce more advanced editing features, such as transitions between media items and other more advanced video compositing settings.

    Adaptive-first: Editing flows can get complicated, so it helps to take advantage of as much screen real estate as possible. With the adaptive layouts provided by Jetpack Compose, such as the supporting pane layout, we can dynamically adapt the UI based on the device’s screen size.

    new Composition demo app

    Processing overview for faster trim optimizations

    Multi-asset video compositor: We’ve added a custom video compositor that demonstrates how to arrange input media items into different layouts, such as a 2×2 grid or a picture-in-picture overlay. These compositor settings are applied to the Composition, and can be used both with CompositionPlayer for preview and Transformer for export.

    picture-in-picture video overlay in the Composition demo app

    Picture-in-picture video overlay in the Composition demo app

    Get started with Media3 1.8.0

    Please get in touch via the Media3 issue Tracker if you run into any bugs, or if you have questions or feature requests. We look forward to hearing from you!

    [ad_2]

    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Copy Link
    David I. Meeks
    • Website

    Related Posts

    4 Great Apps and Games for the NBA Season

    October 20, 2025

    Elevating your Android deep linking

    October 20, 2025

    Amazon’s AWS Disruption Creates Outages for Hundreds of Websites for Hours

    October 20, 2025

    Online Betting Booms Under Trump

    October 20, 2025

    What Is OpenAI’s Sora Slop App For, Exactly?

    October 19, 2025

    OpenAI Blocks Videos of Martin Luther King Jr. After Racist Depictions

    October 17, 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Latest Posts

    4 Great Apps and Games for the NBA Season

    October 20, 2025

    Elevating your Android deep linking

    October 20, 2025

    Amazon’s AWS Disruption Creates Outages for Hundreds of Websites for Hours

    October 20, 2025

    Online Betting Booms Under Trump

    October 20, 2025
    © 2025 NekoPoiAPK.online – All Rights Reserved
    • About Us
    • Contact Us
    • Privacy Policy
    • Terms and Conditions
    • Disclaimer
    • DMCA

    Type above and press Enter to search. Press Esc to cancel.