# FakeAudioRenderer

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

*** ** * ** ***

<br />

```
@UnstableApi
public class FakeAudioRenderer extends FakeRenderer
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [androidx.media3.exoplayer.BaseRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer) |||
|   | ↳ | [androidx.media3.test.utils.FakeRenderer](https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer) ||
|   |   | ↳ | [androidx.media3.test.utils.FakeAudioRenderer](https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer) |

*** ** * ** ***

A `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer` that supports `https://developer.android.com/reference/androidx/media3/common/C#TRACK_TYPE_AUDIO()`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer#FakeAudioRenderer(androidx.media3.common.util.HandlerWrapper,androidx.media3.exoplayer.audio.AudioRendererEventListener)( https://developer.android.com/reference/androidx/media3/common/util/HandlerWrapper handler, https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioRendererEventListener eventListener )` |

| ### Protected methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer#onDisabled()()` Called when the renderer is disabled. |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer#onEnabled(boolean,boolean)(boolean joining, boolean mayRenderStartOfStream)` Called when the renderer is enabled. |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer#onFormatChanged(androidx.media3.common.Format)(https://developer.android.com/reference/androidx/media3/common/Format format)` Called when the renderer reads a new format. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/test/utils/FakeAudioRenderer#shouldProcessBuffer(long,long)(long bufferTimeUs, long playbackPositionUs)` Called before the renderer processes a buffer. |

### Inherited Constants

From [androidx.media3.exoplayer.Renderer](https://developer.android.com/reference/androidx/media3/exoplayer/Renderer) `static final long` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#DEFAULT_DURATION_TO_PROGRESS_US() = 10000`

Default minimum duration that the playback clock must advance before `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#render(long,long)` can make progress.
`static final long` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#DEFAULT_IDLE_DURATION_TO_PROGRESS_US() = 1000000`

Default duration to progress reported if the renderer does not need calls to `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#render(long,long)` to progress, if it's in `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_ENABLED()` and already `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#isReady()` or `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#isEnded()`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_CUSTOM_BASE() = 10000`

Applications or extensions may define custom `MSG_*` constants that can be passed to renderers.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_AUDIO_ATTRIBUTES() = 3`

A type of a message that can be passed to an audio renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_AUDIO_OUTPUT_PROVIDER() = 20`

The type of a message that can be passed to audio renderers via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_AUDIO_SESSION_ID() = 10`

The type of a message that can be passed to audio and video renderers via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_AUX_EFFECT_INFO() = 6`

A type of a message that can be passed to an audio renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_CAMERA_MOTION_LISTENER() = 8`

The type of a message that can be passed to a camera motion renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_CHANGE_FRAME_RATE_STRATEGY() = 5`

The type of a message that can be passed to a video renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_CODEC_PARAMETERS() = 21`

The type of a message that can be passed to renderers via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_IMAGE_METADATA_LISTENER() = 23`

The type of a message that can be passed to an image renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_IMAGE_OUTPUT() = 15`

The type of message that can be passed to an image renderer to set a desired image output.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_PREFERRED_AUDIO_DEVICE() = 12`

The type of a message that can be passed to audio renderers via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_PRIORITY() = 16`

The type of message that can be passed to a renderer to set its priority.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_SCALING_MODE() = 4`

The type of a message that can be passed to a `https://developer.android.com/reference/android/media/MediaCodec.html`-based video renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_SCRUBBING_MODE() = 18`

The type of message that can be passed to a renderer to direct it to enable or disable scrubbing mode.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_SKIP_SILENCE_ENABLED() = 9`

The type of a message that can be passed to an audio renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_SUBSCRIBED_CODEC_PARAMETER_KEYS() = 22`

A message to set the keys for which a renderer should report parameter changes.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_VIDEO_EFFECTS() = 13`

The type of a message that can be passed to a video renderer.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_VIDEO_FRAME_METADATA_LISTENER() = 7`

The type of a message that can be passed to a video renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_VIDEO_OUTPUT() = 1`

The type of a message that can be passed to a video renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_VIDEO_OUTPUT_RESOLUTION() = 14`

The type of a message that can be passed to a video renderer to set the desired output resolution.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_VIRTUAL_DEVICE_ID() = 19`

The type of a message that can be passed to audio renderers via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_VOLUME() = 2`

A type of a message that can be passed to an audio renderer via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_SET_WAKEUP_LISTENER() = 11`

The type of a message that can be passed to a `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` via `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer#createMessage(androidx.media3.exoplayer.PlayerMessage.Target)`, to inform the renderer that it can schedule waking up another component.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#MSG_TRANSFER_RESOURCES() = 17`

The type of message that can be passed to a renderer to direct it to transfer relevant resources to another renderer.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_DISABLED() = 0`

The renderer is disabled.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_ENABLED() = 1`

The renderer is enabled but not started.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_STARTED() = 2`

The renderer is started.
From [androidx.media3.exoplayer.RendererCapabilities](https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities) `static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#ADAPTIVE_NOT_SEAMLESS() = 8`

The `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` can adapt between formats, but may suffer a brief discontinuity (\~50-100ms) when adaptation occurs.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#ADAPTIVE_NOT_SUPPORTED() = 0`

The `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` does not support adaptation between formats.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#ADAPTIVE_SEAMLESS() = 16`

The `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` can seamlessly adapt between formats.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#ADAPTIVE_SUPPORT_MASK() = 24`

A mask to apply to `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` to obtain the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport` only.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#AUDIO_OFFLOAD_GAPLESS_SUPPORTED() = 1024`

The renderer supports audio offload and gapless transitions with this format.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#AUDIO_OFFLOAD_NOT_SUPPORTED() = 0`

Audio offload is not supported with this format.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#AUDIO_OFFLOAD_SPEED_CHANGE_SUPPORTED() = 2048`

The renderer supports audio offload and speed changes with this format.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#AUDIO_OFFLOAD_SUPPORTED() = 512`

The renderer supports audio offload with this format.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#AUDIO_OFFLOAD_SUPPORT_MASK() = 3584`

A mask to apply to `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` to obtain `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AudioOffloadSupport` only.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#DECODER_SUPPORT_FALLBACK() = 0`

The format exceeds the primary decoder's capabilities but is supported by fallback decoder
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#DECODER_SUPPORT_FALLBACK_MIMETYPE() = 256`

The format's MIME type is unsupported and the renderer may use a decoder for a fallback MIME type.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#DECODER_SUPPORT_MASK() = 384`

A mask to apply to `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` to obtain `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.DecoderSupport` only.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#DECODER_SUPPORT_PRIMARY() = 128`

The renderer is able to use the primary decoder for the format's MIME type.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#FORMAT_SUPPORT_MASK() = 7`

A mask to apply to `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` to obtain the `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport` only.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#HARDWARE_ACCELERATION_NOT_SUPPORTED() = 0`

The renderer is not able to use hardware acceleration.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#HARDWARE_ACCELERATION_SUPPORTED() = 64`

The renderer is able to use hardware acceleration.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#HARDWARE_ACCELERATION_SUPPORT_MASK() = 64`

A mask to apply to `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` to obtain `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.HardwareAccelerationSupport` only.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#TUNNELING_NOT_SUPPORTED() = 0`

The `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` does not support tunneled output.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#TUNNELING_SUPPORTED() = 32`

The `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` supports tunneled output.
`static final int` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#TUNNELING_SUPPORT_MASK() = 32`

A mask to apply to `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` to obtain `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport` only.

### Inherited fields

From [androidx.media3.exoplayer.BaseRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer) `@https://checkerframework.org/api/org/checkerframework/checker/nullness/qual/MonotonicNonNull.html https://developer.android.com/reference/androidx/media3/common/util/Clock` `@https://checkerframework.org/api/org/checkerframework/checker/nullness/qual/MonotonicNonNull.html
https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#clock()` `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/RendererConfiguration` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#configuration()` `final https://developer.android.com/reference/androidx/media3/exoplayer/FormatHolder` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#formatHolder()` `int` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#index()` `long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#lastResetPositionUs()` `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#mediaPeriodId()` `@https://checkerframework.org/api/org/checkerframework/checker/nullness/qual/MonotonicNonNull.html https://developer.android.com/reference/androidx/media3/exoplayer/analytics/PlayerId` `@https://checkerframework.org/api/org/checkerframework/checker/nullness/qual/MonotonicNonNull.html
https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#playerId()` `long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#readingPositionUs()` `int` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#state()` `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#stream()` `long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#streamEndPositionUs()` `@https://developer.android.com/reference/androidx/annotation/Nullable Format[]` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#streamFormats()` `long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#streamOffsetUs()` `https://developer.android.com/reference/androidx/media3/common/Timeline` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#timeline()` `final int` `@https://developer.android.com/reference/androidx/media3/common/C.TrackType
https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#trackType()` From [androidx.media3.test.utils.FakeRenderer](https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer) `int` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#enabledCount()` `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Format>` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#formatsRead()` `boolean` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#isEnded()` `boolean` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#isInitialized()` `boolean` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#isReleased()` `int` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#positionResetCount()` `int` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#resetCount()` `int` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#sampleBufferReadCount()`

### Inherited methods

From [androidx.media3.exoplayer.BaseRenderer](https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer) `final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#clearListener()()`

Clears the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Listener`.
`final https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#createRendererException(java.lang.Throwable,androidx.media3.common.Format,int)(

https://developer.android.com/reference/java/lang/Throwable.html cause,

@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format format,

@https://developer.android.com/reference/androidx/media3/common/PlaybackException.ErrorCode int errorCode

)`

Creates an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException` of type `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException#TYPE_RENDERER()` for this renderer.
`final https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#createRendererException(java.lang.Throwable,androidx.media3.common.Format,boolean,int)(

https://developer.android.com/reference/java/lang/Throwable.html cause,

@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/Format format,

boolean isRecoverable,

@https://developer.android.com/reference/androidx/media3/common/PlaybackException.ErrorCode int errorCode

)`

Creates an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException` of type `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException#TYPE_RENDERER()` for this renderer.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#disable()()`

Disable the renderer, transitioning it to the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_DISABLED()` state.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#enable(androidx.media3.exoplayer.RendererConfiguration,androidx.media3.common.Format[],androidx.media3.exoplayer.source.SampleStream,long,boolean,boolean,long,long,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)(

https://developer.android.com/reference/androidx/media3/exoplayer/RendererConfiguration configuration,

Format[] formats,

https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream stream,

long positionUs,

boolean joining,

boolean mayRenderStartOfStream,

long startPositionUs,

long offsetUs,

https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId

)`

Enables the renderer to consume from the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream`.
`final https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getCapabilities()()`

Returns the capabilities of the renderer.
`final https://developer.android.com/reference/androidx/media3/common/util/Clock` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getClock()()`

Returns the `https://developer.android.com/reference/androidx/media3/common/util/Clock`.
`final https://developer.android.com/reference/androidx/media3/exoplayer/RendererConfiguration` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getConfiguration()()`

Returns the configuration set when the renderer was most recently enabled.
`final https://developer.android.com/reference/androidx/media3/exoplayer/FormatHolder` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getFormatHolder()()`

Returns a clear `https://developer.android.com/reference/androidx/media3/exoplayer/FormatHolder`.
`final int` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getIndex()()`

Returns the index of the renderer within the player.
`final long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getLastResetPositionUs()()`

Returns the position passed to the most recent call to `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#enable(androidx.media3.exoplayer.RendererConfiguration,androidx.media3.common.Format[],androidx.media3.exoplayer.source.SampleStream,long,boolean,boolean,long,long,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)` or `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#resetPosition(long,boolean)`.
`@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getMediaClock()()`

If the renderer advances its own playback position then this method returns a corresponding `https://developer.android.com/reference/androidx/media3/exoplayer/MediaClock`.
`final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getMediaPeriodId()()`

The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId` of the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaPeriod` producing the `stream`, or `null` if the renderer is disabled.
`final https://developer.android.com/reference/androidx/media3/exoplayer/analytics/PlayerId` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getPlayerId()()`

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/analytics/PlayerId` of the player using this renderer.
`final long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getReadingPositionUs()()`

Returns the renderer time up to which the renderer has read samples, in microseconds, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_END_OF_SOURCE()` if the renderer has read the current `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` to the end.
`final int` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getState()()`

Returns the current state of the renderer.
`final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getStream()()`

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` being consumed, or null if the renderer is disabled.
`final long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getStreamEndPositionUs()()`

Returns the end position of the content or ad period producing the stream, in microseconds, or `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()` if unknown.
`final Format[]` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getStreamFormats()()`

Returns the formats of the currently enabled stream.
`final long` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getStreamOffsetUs()()`

Returns the offset added to timestamps of buffers read from the `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream`.
`final https://developer.android.com/reference/androidx/media3/common/Timeline` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getTimeline()()`

Returns the current `https://developer.android.com/reference/androidx/media3/common/Timeline` containing the rendered stream.
`final int` `@https://developer.android.com/reference/androidx/media3/common/C.TrackType
https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#getTrackType()()`

Returns the track type that the renderer handles.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#handleMessage(int,java.lang.Object)(

@https://developer.android.com/reference/androidx/media3/exoplayer/Renderer.MessageType int messageType,

@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html message

)`

Handles a message delivered to the target.
`final boolean` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#hasReadStreamToEnd()()`

Returns whether the renderer has read the current `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` to the end.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#init(int,androidx.media3.exoplayer.analytics.PlayerId,androidx.media3.common.util.Clock)(int index, https://developer.android.com/reference/androidx/media3/exoplayer/analytics/PlayerId playerId, https://developer.android.com/reference/androidx/media3/common/util/Clock clock)`

Initializes the renderer for playback with a player.
`final boolean` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#isCurrentStreamFinal()()`

Returns whether the current `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` will be the final one supplied before the renderer is next disabled or reset.
`final boolean` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#isSourceReady()()`

Returns whether the upstream source is ready.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#maybeThrowStreamError()()`

Throws an error that's preventing the renderer from reading from its `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream`.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#onRendererCapabilitiesChanged()()`

Called when the renderer capabilities are changed.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#onStarted()()`

Called when the renderer is started.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#onStopped()()`

Called when the renderer is stopped.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#onStreamChanged(androidx.media3.common.Format[],long,long,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)(

Format[] formats,

long startPositionUs,

long offsetUs,

https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId

)`

Called when the renderer's stream has changed.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#onTimelineChanged(androidx.media3.common.Timeline)(https://developer.android.com/reference/androidx/media3/common/Timeline timeline)`

Called when a new timeline is `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#setTimeline(androidx.media3.common.Timeline)`.
`final int` `@https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream.ReadDataResult
https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#readSource(androidx.media3.exoplayer.FormatHolder,androidx.media3.decoder.DecoderInputBuffer,int)(

https://developer.android.com/reference/androidx/media3/exoplayer/FormatHolder formatHolder,

https://developer.android.com/reference/androidx/media3/decoder/DecoderInputBuffer buffer,

@https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream.ReadFlags int readFlags

)`

Reads from the enabled upstream source.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#release()()`

Releases the renderer.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#replaceStream(androidx.media3.common.Format[],androidx.media3.exoplayer.source.SampleStream,long,long,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)(

Format[] formats,

https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream stream,

long startPositionUs,

long offsetUs,

https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId

)`

Replaces the `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` from which samples will be consumed.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#reset()()`

Forces the renderer to give up any resources (e.g. media decoders) that it may be holding.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#resetPosition(long,boolean)(long positionUs, boolean sampleStreamIsResetToKeyFrame)`

Signals to the renderer that a position discontinuity has occurred.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#setCurrentStreamFinal()()`

Signals to the renderer that the current `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` will be the final one supplied before it is next disabled or reset.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#setListener(androidx.media3.exoplayer.RendererCapabilities.Listener)(https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Listener listener)`

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Listener`.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#setTimeline(androidx.media3.common.Timeline)(https://developer.android.com/reference/androidx/media3/common/Timeline timeline)`

Sets the timeline that is currently being played.
`int` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#skipSource(long)(long positionUs)`

Attempts to skip to the keyframe before the specified position, or to the end of the stream if `positionUs` is beyond it.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#start()()`

Starts the renderer, meaning that calls to `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#render(long,long)` will cause media to be rendered.
`final void` `https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#stop()()`

Stops the renderer, transitioning it to the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_ENABLED()` state.
`int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport
https://developer.android.com/reference/androidx/media3/exoplayer/BaseRenderer#supportsMixedMimeTypeAdaptation()()`

Returns the extent to which the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` supports adapting between supported formats that have different MIME types.
From [androidx.media3.test.utils.FakeRenderer](https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer) `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Format>` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#getFormatsRead()()`

Returns the list of formats read by the renderer.
`https://developer.android.com/reference/java/lang/String.html` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#getName()()`

Returns the name of this renderer, for logging and debugging purposes.
`boolean` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#isEnded()()`

Whether the renderer is ready for the `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` instance to transition to `https://developer.android.com/reference/androidx/media3/common/Player#STATE_ENDED()`.
`boolean` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#isReady()()`

Whether the renderer is able to immediately render media from the current position.
`void` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#onInit()()`

Called when the renderer is initialized.
`void` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#onPositionReset(long,boolean,boolean)(

long positionUs,

boolean joining,

boolean sampleStreamIsResetToKeyFrame

)`

Called when the position is reset.
`void` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#onRelease()()`

Called when the renderer is released.
`void` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#onReset()()`

Called when the renderer is reset.
`void` `https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#render(long,long)(long positionUs, long elapsedRealtimeUs)`

Incrementally renders the `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream`.
`int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities
https://developer.android.com/reference/androidx/media3/test/utils/FakeRenderer#supportsFormat(androidx.media3.common.Format)(https://developer.android.com/reference/androidx/media3/common/Format format)`

Returns the extent to which the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` supports a given format.
From [androidx.media3.exoplayer.Renderer](https://developer.android.com/reference/androidx/media3/exoplayer/Renderer) `abstract void` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#enable(androidx.media3.exoplayer.RendererConfiguration,androidx.media3.common.Format[],androidx.media3.exoplayer.source.SampleStream,long,boolean,boolean,long,long,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)(

https://developer.android.com/reference/androidx/media3/exoplayer/RendererConfiguration configuration,

Format[] formats,

https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream stream,

long positionUs,

boolean joining,

boolean mayRenderStartOfStream,

long startPositionUs,

long offsetUs,

https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId

)`

Enables the renderer to consume from the specified `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream`.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#enableMayRenderStartOfStream()()`

Enables this renderer to render the start of the stream even if the state is not `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_STARTED()` yet.
`long` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#getDurationToProgressUs(long,long)(long positionUs, long elapsedRealtimeUs)`

Returns minimum amount of playback clock time that must pass from `elapsedRealtimeUs` in order for the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#render(long,long)` call to make progress.
`abstract void` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#replaceStream(androidx.media3.common.Format[],androidx.media3.exoplayer.source.SampleStream,long,long,androidx.media3.exoplayer.source.MediaSource.MediaPeriodId)(

Format[] formats,

https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream stream,

long startPositionUs,

long offsetUs,

https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.MediaPeriodId mediaPeriodId

)`

Replaces the `https://developer.android.com/reference/androidx/media3/exoplayer/source/SampleStream` from which samples will be consumed.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#setPlaybackSpeed(float,float)(float currentPlaybackSpeed, float targetPlaybackSpeed)`

Indicates the playback speed to this renderer.
`boolean` `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#supportsResetPositionWithoutKeyFrameReset(long)(long positionUs)`

Returns whether the renderer can support processing a position discontinuity without a key frame reset.
From [androidx.media3.exoplayer.RendererCapabilities](https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities) `static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#create(int)(@https://developer.android.com/reference/androidx/media3/common/C.FormatSupport int formatSupport)`

Returns `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` for the given `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#create(int,int,int)(

@https://developer.android.com/reference/androidx/media3/common/C.FormatSupport int formatSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int adaptiveSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport int tunnelingSupport

)`

Returns `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` combining the given `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport` and `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#create(int,int,int,int)(

@https://developer.android.com/reference/androidx/media3/common/C.FormatSupport int formatSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int adaptiveSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport int tunnelingSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AudioOffloadSupport int audioOffloadSupport

)`

Returns `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` combining the given `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport`, and `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AudioOffloadSupport`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#create(int,int,int,int,int)(

@https://developer.android.com/reference/androidx/media3/common/C.FormatSupport int formatSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int adaptiveSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport int tunnelingSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.HardwareAccelerationSupport int hardwareAccelerationSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.DecoderSupport int decoderSupport

)`

Returns `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` combining the given `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.HardwareAccelerationSupport`, and `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.DecoderSupport`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#create(int,int,int,int,int,int)(

@https://developer.android.com/reference/androidx/media3/common/C.FormatSupport int formatSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport int adaptiveSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport int tunnelingSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.HardwareAccelerationSupport int hardwareAccelerationSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.DecoderSupport int decoderSupport,

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AudioOffloadSupport int audioOffloadSupport

)`

Returns `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` combining the given `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.HardwareAccelerationSupport`, `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.DecoderSupport` and `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AudioOffloadSupport`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#getAdaptiveSupport(int)(@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int supportFlags)`

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AdaptiveSupport` from the combined `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AudioOffloadSupport
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#getAudioOffloadSupport(int)(

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int supportFlags

)`

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.AudioOffloadSupport` from the combined `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.DecoderSupport
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#getDecoderSupport(int)(@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int supportFlags)`

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.DecoderSupport` from the combined `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities`.
`static int` `@https://developer.android.com/reference/androidx/media3/common/C.FormatSupport
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#getFormatSupport(int)(@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int supportFlags)`

Returns the `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport` from the combined `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.HardwareAccelerationSupport
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#getHardwareAccelerationSupport(int)(

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int supportFlags

)`

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.HardwareAccelerationSupport` from the combined `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities`.
`static int` `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport
https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#getTunnelingSupport(int)(@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int supportFlags)`

Returns the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.TunnelingSupport` from the combined `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities`.
`static boolean` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#isFormatSupported(int,boolean)(

@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities int supportFlags,

boolean allowExceedsCapabilities

)`

Returns whether the `https://developer.android.com/reference/androidx/media3/common/C.FormatSupport` from the combined `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` indicates the format is supported.
`void` `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities#setListener(androidx.media3.exoplayer.RendererCapabilities.Listener)(https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Listener listener)`

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Listener`.

## Public constructors

### FakeAudioRenderer

```
public FakeAudioRenderer(
    HandlerWrapper handler,
    AudioRendererEventListener eventListener
)
```

## Protected methods

### onDisabled

```
protected void onDisabled()
```

Called when the renderer is disabled.

The default implementation is a no-op.

### onEnabled

```
protected void onEnabled(boolean joining, boolean mayRenderStartOfStream)
```

Called when the renderer is enabled.

The default implementation is a no-op.

| Parameters |
|---|---|
| `boolean joining` | Whether this renderer is being enabled to join an ongoing playback. |
| `boolean mayRenderStartOfStream` | Whether this renderer is allowed to render the start of the stream even if the state is not `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer#STATE_STARTED()` yet. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlaybackException` | If an error occurs. |

### onFormatChanged

```
protected void onFormatChanged(Format format)
```

Called when the renderer reads a new format.

### shouldProcessBuffer

```
protected boolean shouldProcessBuffer(long bufferTimeUs, long playbackPositionUs)
```

Called before the renderer processes a buffer.

| Parameters |
|---|---|
| `long bufferTimeUs` | The buffer timestamp, in microseconds. |
| `long playbackPositionUs` | The playback position, in microseconds |

| Returns |
|---|---|
| `boolean` | Whether the buffer should be processed. |