# ExoPlayerAssetLoader.Factory

# ExoPlayerAssetLoader.Factory

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

*** ** * ** ***

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

<br />

```
class ExoPlayerAssetLoader.Factory : AssetLoader.Factory
```

<br />

*** ** * ** ***

An[AssetLoader.Factory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Factory)for[ExoPlayerAssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExoPlayerAssetLoader)instances.

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ### Public constructors                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Factory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExoPlayerAssetLoader.Factory#Factory(android.content.Context,androidx.media3.transformer.Codec.DecoderFactory,androidx.media3.common.util.Clock))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!,` ` clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!` `)` Creates an instance using a[DefaultMediaSourceFactory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/DefaultMediaSourceFactory).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| [Factory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExoPlayerAssetLoader.Factory#Factory(android.content.Context,androidx.media3.transformer.Codec.DecoderFactory,androidx.media3.common.util.Clock,androidx.media3.exoplayer.LoadControl))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!,` ` clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!,` ` loadControl: `[LoadControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl)`!` `)` Creates an instance using a[DefaultMediaSourceFactory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/DefaultMediaSourceFactory).                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [Factory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExoPlayerAssetLoader.Factory#Factory(android.content.Context,androidx.media3.transformer.Codec.DecoderFactory,androidx.media3.common.util.Clock,androidx.media3.exoplayer.source.MediaSource.Factory))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!,` ` clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!,` ` mediaSourceFactory: `[MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory)`!` `)` Creates an instance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [Factory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExoPlayerAssetLoader.Factory#Factory(android.content.Context,androidx.media3.transformer.Codec.DecoderFactory,androidx.media3.common.util.Clock,androidx.media3.exoplayer.source.MediaSource.Factory,androidx.media3.exoplayer.trackselection.TrackSelector.Factory,android.media.metrics.LogSessionId,androidx.media3.exoplayer.LoadControl))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!,` ` clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!,` ` mediaSourceFactory: `[MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory)`?,` ` trackSelectorFactory: `[TrackSelector.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector.Factory)`?,` ` logSessionId: `[LogSessionId](https://developer.android.com/reference/android/media/metrics/LogSessionId.html)`?,` ` loadControl: `[LoadControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl)`?` `)` Creates an instance. |

|                                           ### Public functions                                           |
|----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [AssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader)`!` | [createAssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExoPlayerAssetLoader.Factory#createAssetLoader(androidx.media3.transformer.EditedMediaItem,android.os.Looper,androidx.media3.transformer.AssetLoader.Listener,androidx.media3.transformer.AssetLoader.CompositionSettings))`(` ` editedMediaItem: `[EditedMediaItem](https://developer.android.com/reference/kotlin/androidx/media3/transformer/EditedMediaItem)`!,` ` looper: `[Looper](https://developer.android.com/reference/android/os/Looper.html)`!,` ` listener: `[AssetLoader.Listener](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Listener)`!,` ` compositionSettings: `[AssetLoader.CompositionSettings](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.CompositionSettings)`!` `)` Creates an[AssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader)instance. |

## Public constructors

### Factory

```
Factory(
    context: Context!,
    decoderFactory: Codec.DecoderFactory!,
    clock: Clock!
)
```

Creates an instance using a[DefaultMediaSourceFactory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/DefaultMediaSourceFactory).  

|                                                                  Parameters                                                                  |
|----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                                                | The[Context](https://developer.android.com/reference/android/content/Context.html).                                                                                                                                                               |
| `decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!` | The[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)to use to decode the samples (if necessary).                                                                            |
| `clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!`                                        | The[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)to use. It should always be[DEFAULT](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock#DEFAULT()), except for testing. |

### Factory

```
Factory(
    context: Context!,
    decoderFactory: Codec.DecoderFactory!,
    clock: Clock!,
    loadControl: LoadControl!
)
```

Creates an instance using a[DefaultMediaSourceFactory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/DefaultMediaSourceFactory).  

|                                                                  Parameters                                                                  |
|----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                                                | The[Context](https://developer.android.com/reference/android/content/Context.html).                                                                                                                                                               |
| `decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!` | The[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)to use to decode the samples (if necessary).                                                                            |
| `clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!`                                        | The[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)to use. It should always be[DEFAULT](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock#DEFAULT()), except for testing. |
| `loadControl: `[LoadControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl)`!`                        | The[LoadControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl)to use in the underlying[ExoPlayer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer).                    |

### Factory

```
Factory(
    context: Context!,
    decoderFactory: Codec.DecoderFactory!,
    clock: Clock!,
    mediaSourceFactory: MediaSource.Factory!
)
```

Creates an instance.  

|                                                                     Parameters                                                                      |
|-----------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                                                       | The[Context](https://developer.android.com/reference/android/content/Context.html).                                                                                                                                                               |
| `decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!`        | The[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)to use to decode the samples (if necessary).                                                                            |
| `clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!`                                               | The[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)to use. It should always be[DEFAULT](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock#DEFAULT()), except for testing. |
| `mediaSourceFactory: `[MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory)`!` | The[MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory)to use to retrieve the samples to transform.                                                                         |

### Factory

```
Factory(
    context: Context!,
    decoderFactory: Codec.DecoderFactory!,
    clock: Clock!,
    mediaSourceFactory: MediaSource.Factory?,
    trackSelectorFactory: TrackSelector.Factory?,
    logSessionId: LogSessionId?,
    loadControl: LoadControl?
)
```

Creates an instance.  

|                                                                            Parameters                                                                             |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                                                                     | The[Context](https://developer.android.com/reference/android/content/Context.html).                                                                                                                                                               |
| `decoderFactory: `[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)`!`                      | The[Codec.DecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory)to use to decode the samples (if necessary).                                                                            |
| `clock: `[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)`!`                                                             | The[Clock](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock)to use. It should always be[DEFAULT](https://developer.android.com/reference/kotlin/androidx/media3/common/util/Clock#DEFAULT()), except for testing. |
| `mediaSourceFactory: `[MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory)`?`               | The[MediaSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory)to use to retrieve the samples to transform.                                                                         |
| `trackSelectorFactory: `[TrackSelector.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector.Factory)`?` | The[TrackSelector.Factory](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/trackselection/TrackSelector.Factory)to use when selecting the track to transform.                                                            |
| `logSessionId: `[LogSessionId](https://developer.android.com/reference/android/media/metrics/LogSessionId.html)`?`                                                | The optional[LogSessionId](https://developer.android.com/reference/android/media/metrics/LogSessionId.html)of the[android.media.metrics.EditingSession](https://developer.android.com/reference/android/media/metrics/EditingSession.html).       |
| `loadControl: `[LoadControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl)`?`                                             | The[LoadControl](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/LoadControl)to use in the underlying[ExoPlayer](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ExoPlayer).                    |

## Public functions

### createAssetLoader

```
fun createAssetLoader(
    editedMediaItem: EditedMediaItem!,
    looper: Looper!,
    listener: AssetLoader.Listener!,
    compositionSettings: AssetLoader.CompositionSettings!
): AssetLoader!
```

Creates an[AssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader)instance.  

|                                                                               Parameters                                                                                |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `editedMediaItem: `[EditedMediaItem](https://developer.android.com/reference/kotlin/androidx/media3/transformer/EditedMediaItem)`!`                                     | The[EditedMediaItem](https://developer.android.com/reference/kotlin/androidx/media3/transformer/EditedMediaItem)to load.                                                                                                                                |
| `looper: `[Looper](https://developer.android.com/reference/android/os/Looper.html)`!`                                                                                   | The[Looper](https://developer.android.com/reference/android/os/Looper.html)that's used to access the[AssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader)after it's been created.                       |
| `listener: `[AssetLoader.Listener](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Listener)`!`                                  | The[Listener](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.Listener)on which the[AssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader)should notify of events. |
| `compositionSettings: `[AssetLoader.CompositionSettings](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.CompositionSettings)`!` | The[CompositionSettings](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader.CompositionSettings).                                                                                                                   |

|                                                 Returns                                                  |
|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
| [AssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader)`!` | An[AssetLoader](https://developer.android.com/reference/kotlin/androidx/media3/transformer/AssetLoader). |