# RenderersFactory

# 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)

*** ** * ** ***

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

<br />

```
@UnstableApi
interface RenderersFactory
```

<br />

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

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

*** ** * ** ***

Builds[Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)instances for use by an[ExoPlayer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer).

## Summary

|                                                                                 ### Public functions                                                                                 |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)`!>!` | [createRenderers](https://developer.android.com/reference/kotlin/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))`(` ` eventHandler: `[Handler](https://developer.android.com/reference/android/os/Handler.html)`!,` ` videoRendererEventListener: `[VideoRendererEventListener](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/video/VideoRendererEventListener)`!,` ` audioRendererEventListener: `[AudioRendererEventListener](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioRendererEventListener)`!,` ` textRendererOutput: `[TextOutput](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/text/TextOutput)`!,` ` metadataRendererOutput: `[MetadataOutput](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/metadata/MetadataOutput)`!` `)` Builds the[Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)instances for an[ExoPlayer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer).                                                                                                                                                                                                  |
| [Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)`?`                                                                                     | [createSecondaryRenderer](https://developer.android.com/reference/kotlin/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))`(` ` renderer: `[Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)`!,` ` eventHandler: `[Handler](https://developer.android.com/reference/android/os/Handler.html)`!,` ` videoRendererEventListener: `[VideoRendererEventListener](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/video/VideoRendererEventListener)`!,` ` audioRendererEventListener: `[AudioRendererEventListener](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/audio/AudioRendererEventListener)`!,` ` textRendererOutput: `[TextOutput](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/text/TextOutput)`!,` ` metadataRendererOutput: `[MetadataOutput](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/metadata/MetadataOutput)`!` `)` Provides a secondary[Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)instance for an[ExoPlayer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer)to use for pre-warming. |

## Public functions

### createRenderers

```
fun createRenderers(
    eventHandler: Handler!,
    videoRendererEventListener: VideoRendererEventListener!,
    audioRendererEventListener: AudioRendererEventListener!,
    textRendererOutput: TextOutput!,
    metadataRendererOutput: MetadataOutput!
): Array<Renderer!>!
```

Builds the[Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)instances for an[ExoPlayer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer).  

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

|                                                                                       Returns                                                                                        |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| [Array](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html)`<`[Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)`!>!` | The[instances](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer). |

### createSecondaryRenderer

```
fun createSecondaryRenderer(
    renderer: Renderer!,
    eventHandler: Handler!,
    videoRendererEventListener: VideoRendererEventListener!,
    audioRendererEventListener: AudioRendererEventListener!,
    textRendererOutput: TextOutput!,
    metadataRendererOutput: MetadataOutput!
): Renderer?
```

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

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

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

|                                             Returns                                              |
|--------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| [Renderer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer)`?` | The[instances](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/Renderer). |