# CompositeSequenceableLoaderFactory

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

*** ** * ** ***


```
@UnstableApi
public interface CompositeSequenceableLoaderFactory
```

<br />

Known direct subclasses [DefaultCompositeSequenceableLoaderFactory](https://developer.android.com/reference/androidx/media3/exoplayer/source/DefaultCompositeSequenceableLoaderFactory)

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/DefaultCompositeSequenceableLoaderFactory` | Default implementation of `https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory`. |

*** ** * ** ***

A factory to create composite `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader`s.

## Summary

| ### Public methods |
|---|---|
| `abstract https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#create(java.util.List<? extends androidx.media3.exoplayer.source.SequenceableLoader>,java.util.List<java.util.List<java.lang.Integer>>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader> loaders, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/media3/common/C.TrackType https://developer.android.com/reference/java/lang/Integer.html>> loaderTrackTypes )` Creates a composite `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader`. |
| `abstract https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader` | `[createCompositeSequenceableLoader](https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#createCompositeSequenceableLoader(androidx.media3.exoplayer.source.SequenceableLoader...))(SequenceableLoader[] loaders)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#empty()` for an empty composite loader, or `https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#create(java.util.List<? extends androidx.media3.exoplayer.source.SequenceableLoader>,java.util.List<java.util.List<java.lang.Integer>>)` for a non-empty one. <br /> |
| `abstract https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#empty()()` Returns an empty composite `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader`, with no delegate loaders. |

## Public methods

### create

```
abstract SequenceableLoader create(
    List<SequenceableLoader> loaders,
    List<List<@C.TrackType Integer>> loaderTrackTypes
)
```

Creates a composite `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader> loaders` | The sub-loaders that make up the `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader` to be built. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/media3/common/C.TrackType https://developer.android.com/reference/java/lang/Integer.html>> loaderTrackTypes` | The track types handled by each entry in `loaders`. Must be the same as `loaders`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader` | A composite `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader` that comprises the given loaders. |

### createCompositeSequenceableLoader

```
abstract SequenceableLoader [createCompositeSequenceableLoader](https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#createCompositeSequenceableLoader(androidx.media3.exoplayer.source.SequenceableLoader...))(SequenceableLoader[] loaders)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#empty()` for an empty composite loader, or `https://developer.android.com/reference/androidx/media3/exoplayer/source/CompositeSequenceableLoaderFactory#create(java.util.List<? extends androidx.media3.exoplayer.source.SequenceableLoader>,java.util.List<java.util.List<java.lang.Integer>>)` for a non-empty one.

### empty

```
abstract SequenceableLoader empty()
```

Returns an empty composite `https://developer.android.com/reference/androidx/media3/exoplayer/source/SequenceableLoader`, with no delegate loaders.