# MediaClock

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

*** ** * ** ***


```
@UnstableApi
public interface MediaClock
```

<br />

Known direct subclasses [DecoderAudioRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/audio/DecoderAudioRenderer), [FakeMediaClockRenderer](https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaClockRenderer), [MediaCodecAudioRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/audio/MediaCodecAudioRenderer), [StandaloneMediaClock](https://developer.android.com/reference/androidx/media3/exoplayer/StandaloneMediaClock)

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/DecoderAudioRenderer` | Decodes and renders audio using a `https://developer.android.com/reference/androidx/media3/decoder/Decoder`. |
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeMediaClockRenderer` | Fake abstract `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` which is also a `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/MediaCodecAudioRenderer` | Decodes and renders audio using `https://developer.android.com/reference/android/media/MediaCodec.html` and an `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioSink`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/StandaloneMediaClock` | A `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock` whose position advances with real time based on the playback parameters when started. |

*** ** * ** ***

Tracks the progression of media time.

## Summary

| ### Public methods |
|---|---|
| `abstract https://developer.android.com/reference/androidx/media3/common/PlaybackParameters` | `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock#getPlaybackParameters()()` Returns the active playback parameters. |
| `abstract long` | `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock#getPositionUs()()` Returns the current media position in microseconds. |
| `default boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock#hasSkippedSilenceSinceLastCall()()` Returns whether there is a skipped silence since the last call to this method. |
| `abstract void` | `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock#setPlaybackParameters(androidx.media3.common.PlaybackParameters)(https://developer.android.com/reference/androidx/media3/common/PlaybackParameters playbackParameters)` Attempts to set the playback parameters. |

## Public methods

### getPlaybackParameters

```
abstract PlaybackParameters getPlaybackParameters()
```

Returns the active playback parameters.

### getPositionUs

```
abstract long getPositionUs()
```

Returns the current media position in microseconds.

### hasSkippedSilenceSinceLastCall

```
default boolean hasSkippedSilenceSinceLastCall()
```

Returns whether there is a skipped silence since the last call to this method.

### setPlaybackParameters

```
abstract void setPlaybackParameters(PlaybackParameters playbackParameters)
```

Attempts to set the playback parameters. The media clock may override the speed if changing the playback parameters is not supported.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/PlaybackParameters playbackParameters` | The playback parameters to attempt to set. |