# BandwidthMeter.EventListener

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/upstream/BandwidthMeter.java+class:androidx.media3.exoplayer.upstream.BandwidthMeter.EventListener)

*** ** * ** ***


```
public interface BandwidthMeter.EventListener
```

<br />

Known direct subclasses [AnalyticsCollector](https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsCollector)

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsCollector` | Interface for data collectors that forward analytics events to `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener`. |

Known indirect subclasses [DefaultAnalyticsCollector](https://developer.android.com/reference/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector)

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/DefaultAnalyticsCollector` | Data collector that forwards analytics events to `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/AnalyticsListener`. |

*** ** * ** ***

A listener of `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter` events.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter.EventListener.EventDispatcher` Event dispatcher which allows listener registration. |

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/media3/exoplayer/upstream/BandwidthMeter.EventListener#onBandwidthSample(int,long,long)( int elapsedMs, long bytesTransferred, long bitrateEstimate )` Called periodically to indicate that bytes have been transferred or the estimated bitrate has changed. |

## Public methods

### onBandwidthSample

```
abstract void onBandwidthSample(
    int elapsedMs,
    long bytesTransferred,
    long bitrateEstimate
)
```

Called periodically to indicate that bytes have been transferred or the estimated bitrate has changed.

Note: The estimated bitrate is typically derived from more information than just `
bytesTransferred` and `elapsedMs`.

| Parameters |
|---|---|
| `int elapsedMs` | The time taken to transfer `bytesTransferred`, in milliseconds. This is at most the elapsed time since the last callback, but may be less if there were periods during which data was not being transferred. |
| `long bytesTransferred` | The number of bytes transferred since the last callback. |
| `long bitrateEstimate` | The estimated bitrate in bits/sec. |