Stay organized with collections
Save and categorize content based on your preferences.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-15 UTC.
[null,null,["Last updated 2025-05-15 UTC."],[],[],null,["# androidx.media3.exoplayer.upstream.experimental\n===============================================\n\n*** ** * ** ***\n\n[Kotlin](/reference/kotlin/androidx/media3/exoplayer/upstream/experimental/package-summary \"View this page in Kotlin\") \\|Java\n\nInterfaces\n----------\n\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|\n| [BandwidthEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/BandwidthEstimator) | The interface for different bandwidth estimation strategies. |\n| [BandwidthStatistic](/reference/androidx/media3/exoplayer/upstream/experimental/BandwidthStatistic) | The interface for different bandwidth estimation statistics. |\n| [SlidingWeightedAverageBandwidthStatistic.SampleEvictionFunction](/reference/androidx/media3/exoplayer/upstream/experimental/SlidingWeightedAverageBandwidthStatistic.SampleEvictionFunction) | An interface to decide if samples need to be evicted from the estimator. |\n\nClasses\n-------\n\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [CombinedParallelSampleBandwidthEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/CombinedParallelSampleBandwidthEstimator) | A [BandwidthEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/BandwidthEstimator) that captures a transfer sample each time all parallel transfers end. |\n| [CombinedParallelSampleBandwidthEstimator.Builder](/reference/androidx/media3/exoplayer/upstream/experimental/CombinedParallelSampleBandwidthEstimator.Builder) | A builder to create [CombinedParallelSampleBandwidthEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/CombinedParallelSampleBandwidthEstimator) instances. |\n| [ExperimentalBandwidthMeter](/reference/androidx/media3/exoplayer/upstream/experimental/ExperimentalBandwidthMeter) | An experimental [BandwidthMeter](/reference/androidx/media3/exoplayer/upstream/BandwidthMeter) that estimates bandwidth by listening to data transfers. |\n| [ExperimentalBandwidthMeter.Builder](/reference/androidx/media3/exoplayer/upstream/experimental/ExperimentalBandwidthMeter.Builder) | Builder for a bandwidth meter. |\n| [ExponentialWeightedAverageStatistic](/reference/androidx/media3/exoplayer/upstream/experimental/ExponentialWeightedAverageStatistic) | A [BandwidthStatistic](/reference/androidx/media3/exoplayer/upstream/experimental/BandwidthStatistic) that calculates estimates using an exponential weighted average. |\n| [ExponentialWeightedAverageTimeToFirstByteEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/ExponentialWeightedAverageTimeToFirstByteEstimator) | Implementation of [TimeToFirstByteEstimator](/reference/androidx/media3/exoplayer/upstream/TimeToFirstByteEstimator) based on exponential weighted average. |\n| [PercentileTimeToFirstByteEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/PercentileTimeToFirstByteEstimator) | Implementation of [TimeToFirstByteEstimator](/reference/androidx/media3/exoplayer/upstream/TimeToFirstByteEstimator) that returns a configured percentile of a sliding window of collected response times. |\n| [SlidingPercentileBandwidthStatistic](/reference/androidx/media3/exoplayer/upstream/experimental/SlidingPercentileBandwidthStatistic) | A [BandwidthStatistic](/reference/androidx/media3/exoplayer/upstream/experimental/BandwidthStatistic) that calculates estimates based on a sliding window weighted percentile. |\n| [SlidingWeightedAverageBandwidthStatistic](/reference/androidx/media3/exoplayer/upstream/experimental/SlidingWeightedAverageBandwidthStatistic) | A [BandwidthStatistic](/reference/androidx/media3/exoplayer/upstream/experimental/BandwidthStatistic) that calculates estimates based on a sliding window weighted average. |\n| [SlidingWeightedAverageBandwidthStatistic.Sample](/reference/androidx/media3/exoplayer/upstream/experimental/SlidingWeightedAverageBandwidthStatistic.Sample) | Represents a bandwidth sample. |\n| [SplitParallelSampleBandwidthEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/SplitParallelSampleBandwidthEstimator) | A [BandwidthEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/BandwidthEstimator) that captures a transfer sample each time a transfer ends. |\n| [SplitParallelSampleBandwidthEstimator.Builder](/reference/androidx/media3/exoplayer/upstream/experimental/SplitParallelSampleBandwidthEstimator.Builder) | A builder to create [SplitParallelSampleBandwidthEstimator](/reference/androidx/media3/exoplayer/upstream/experimental/SplitParallelSampleBandwidthEstimator) instances. |"]]