# RenderersFactory

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

*** ** * ** ***


```
@UnstableApi
public interface RenderersFactory
```

<br />

Known direct subclasses [CapturingRenderersFactory](https://developer.android.com/reference/androidx/media3/test/utils/robolectric/CapturingRenderersFactory), [DefaultRenderersFactory](https://developer.android.com/reference/androidx/media3/exoplayer/DefaultRenderersFactory)

|---|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/robolectric/CapturingRenderersFactory` | A `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory` that captures interactions with the audio and video `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter` instances and `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageOutput` instances. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/DefaultRenderersFactory` | Default `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory` implementation. |

*** ** * ** ***

Builds `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` instances for use by an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer`.

## Summary

| ### Public methods |
|---|---|
| `abstract Renderer[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory#createRenderers(android.os.Handler,androidx.media3.exoplayer.video.VideoRendererEventListener,androidx.media3.exoplayer.audio.AudioRendererEventListener,androidx.media3.exoplayer.text.TextOutput,androidx.media3.exoplayer.metadata.MetadataOutput)( https://developer.android.com/reference/android/os/Handler.html eventHandler, https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoRendererEventListener videoRendererEventListener, https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioRendererEventListener audioRendererEventListener, https://developer.android.com/reference/androidx/media3/exoplayer/text/TextOutput textRendererOutput, https://developer.android.com/reference/androidx/media3/exoplayer/metadata/MetadataOutput metadataRendererOutput )` Builds the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` instances for an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer`. |
| `default @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` | `https://developer.android.com/reference/androidx/media3/exoplayer/RenderersFactory#createSecondaryRenderer(androidx.media3.exoplayer.Renderer,android.os.Handler,androidx.media3.exoplayer.video.VideoRendererEventListener,androidx.media3.exoplayer.audio.AudioRendererEventListener,androidx.media3.exoplayer.text.TextOutput,androidx.media3.exoplayer.metadata.MetadataOutput)( https://developer.android.com/reference/androidx/media3/exoplayer/Renderer renderer, https://developer.android.com/reference/android/os/Handler.html eventHandler, https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoRendererEventListener videoRendererEventListener, https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioRendererEventListener audioRendererEventListener, https://developer.android.com/reference/androidx/media3/exoplayer/text/TextOutput textRendererOutput, https://developer.android.com/reference/androidx/media3/exoplayer/metadata/MetadataOutput metadataRendererOutput )` Provides a secondary `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` instance for an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` to use for pre-warming. |

## Public methods

### createRenderers

```
abstract Renderer[] createRenderers(
    Handler eventHandler,
    VideoRendererEventListener videoRendererEventListener,
    AudioRendererEventListener audioRendererEventListener,
    TextOutput textRendererOutput,
    MetadataOutput metadataRendererOutput
)
```

Builds the `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` instances for an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/os/Handler.html eventHandler` | A handler to use when invoking event listeners and outputs. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoRendererEventListener videoRendererEventListener` | An event listener for video renderers. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioRendererEventListener audioRendererEventListener` | An event listener for audio renderers. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/text/TextOutput textRendererOutput` | An output for text renderers. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/metadata/MetadataOutput metadataRendererOutput` | An output for metadata renderers. |

| Returns |
|---|---|
| `Renderer[]` | The `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer`. |

### createSecondaryRenderer

```
default @Nullable Renderer createSecondaryRenderer(
    Renderer renderer,
    Handler eventHandler,
    VideoRendererEventListener videoRendererEventListener,
    AudioRendererEventListener audioRendererEventListener,
    TextOutput textRendererOutput,
    MetadataOutput metadataRendererOutput
)
```

Provides a secondary `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` instance for an `https://developer.android.com/reference/androidx/media3/exoplayer/ExoPlayer` to use for pre-warming.

The created secondary `Renderer` should match its primary in its reported track type support and `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer renderer` | The primary `Renderer` for which to create the backup. |
| `https://developer.android.com/reference/android/os/Handler.html eventHandler` | A handler to use when invoking event listeners and outputs. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoRendererEventListener videoRendererEventListener` | An event listener for video renderers. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/audio/AudioRendererEventListener audioRendererEventListener` | An event listener for audio renderers. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/text/TextOutput textRendererOutput` | An output for text renderers. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/metadata/MetadataOutput metadataRendererOutput` | An output for metadata renderers. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/Renderer` | The `https://developer.android.com/reference/androidx/media3/exoplayer/Renderer`. |