# LivePlaybackSpeedControl

# LivePlaybackSpeedControl

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/LivePlaybackSpeedControl.java+class:androidx.media3.exoplayer.LivePlaybackSpeedControl)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/exoplayer/LivePlaybackSpeedControl "View this page in Java")

<br />

```
@UnstableApi
interface LivePlaybackSpeedControl
```

<br />

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

|---------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DefaultLivePlaybackSpeedControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/DefaultLivePlaybackSpeedControl) | A[LivePlaybackSpeedControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl)that adjusts the playback speed using a proportional controller. |

*** ** * ** ***

Controls the playback speed while playing live content in order to maintain a steady target live offset.

## Summary

|                              ### Public functions                               |
|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) | [getAdjustedPlaybackSpeed](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#getAdjustedPlaybackSpeed(long,long))`(liveOffsetUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`, bufferedDurationUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Returns the adjusted playback speed in order get closer towards the[target live offset](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#getTargetLiveOffsetUs()). |
| [Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)   | [getTargetLiveOffsetUs](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#getTargetLiveOffsetUs())`()` Returns the current target live offset, in microseconds, or[TIME_UNSET](https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET())if no target live offset is defined for the current media.                                                                                                                                                                                                              |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)   | [notifyRebuffer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#notifyRebuffer())`()` Notifies the live playback speed control that a rebuffer occurred.                                                                                                                                                                                                                                                                                                                                                                                 |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)   | [setLiveConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration))`(liveConfiguration: `[MediaItem.LiveConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration)`!)` Sets the live configuration defined by the media.                                                                                                                                                                              |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)   | [setTargetLiveOffsetOverrideUs](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#setTargetLiveOffsetOverrideUs(long))`(liveOffsetUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Sets the target live offset in microseconds that overrides the live offset[configured](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration))by the media.                                     |

## Public functions

### getAdjustedPlaybackSpeed

```
fun getAdjustedPlaybackSpeed(liveOffsetUs: Long, bufferedDurationUs: Long): Float
```

Returns the adjusted playback speed in order get closer towards the[target live offset](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#getTargetLiveOffsetUs()).  

|                                             Parameters                                              |
|-----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `liveOffsetUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)       | The current live offset, in microseconds.                         |
| `bufferedDurationUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | The duration of media that's currently buffered, in microseconds. |

|                                     Returns                                     |
|---------------------------------------------------------------------------------|----------------------------------------------------------|
| [Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) | The adjusted factor by which playback should be sped up. |

### getTargetLiveOffsetUs

```
fun getTargetLiveOffsetUs(): Long
```

Returns the current target live offset, in microseconds, or[TIME_UNSET](https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET())if no target live offset is defined for the current media.  

### notifyRebuffer

```
fun notifyRebuffer(): Unit
```

Notifies the live playback speed control that a rebuffer occurred.

A rebuffer is defined to be caused by buffer depletion rather than a user action. Hence this method is not called during initial buffering or when buffering as a result of a seek operation.  

### setLiveConfiguration

```
fun setLiveConfiguration(liveConfiguration: MediaItem.LiveConfiguration!): Unit
```

Sets the live configuration defined by the media.  

|                                                                        Parameters                                                                        |
|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| `liveConfiguration: `[MediaItem.LiveConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration)`!` | The[LiveConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem.LiveConfiguration)as defined by the media. |

### setTargetLiveOffsetOverrideUs

```
fun setTargetLiveOffsetOverrideUs(liveOffsetUs: Long): Unit
```

Sets the target live offset in microseconds that overrides the live offset[configured](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration))by the media. Passing`C.TIME_UNSET`deletes a previous override.

If no target live offset is configured by[setLiveConfiguration](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LivePlaybackSpeedControl#setLiveConfiguration(androidx.media3.common.MediaItem.LiveConfiguration)), this override has no effect.