# DefaultPreloadManager

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

*** ** * ** ***


```
@UnstableApi
class DefaultPreloadManager : BasePreloadManager<Int!, DefaultPreloadManager.PreloadStatus!>
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.media3.exoplayer.source.preload.BasePreloadManager](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager)\<[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)!, [DefaultPreloadManager.PreloadStatus](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.PreloadStatus)!\> ||
|   | ↳ | [androidx.media3.exoplayer.source.preload.DefaultPreloadManager](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager) |

*** ** * ** ***

A preload manager that preloads with the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadMediaSource` to load the media data into the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/SampleQueue`.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.Builder : https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.BuilderBase<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!, https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.PreloadStatus!>` A builder for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager` instances. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.PreloadStatus` Defines the preload status for the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager`. |
| `@https://developer.android.com/reference/java/lang/annotation/Documented.html @https://developer.android.com/reference/java/lang/annotation/Retention.html(value = https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE) @https://developer.android.com/reference/java/lang/annotation/Target.html(value = https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE) @https://developer.android.com/reference/kotlin/androidx/annotation/IntDef(value = ) annotation https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.PreloadStatus.Stage` Stages for the preload status. |
| `class https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.SimpleRankingDataComparator : https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/RankingDataComparator<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!>` A `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/RankingDataComparator` which compares the ranks of the media items based on their distances to the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.SimpleRankingDataComparator#setCurrentPlayingIndex(int)`. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager#setCurrentPlayingIndex(int)(currentPlayingIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the index of the current playing media. |

| ### Protected functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager#createMediaSourceHolder(androidx.media3.common.MediaItem,androidx.media3.exoplayer.source.MediaSource,java.lang.Integer)( mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!, mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource?, rankingData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html! )` Returns the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder` that the preload manager creates for preloading based on the given `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` and `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager#preloadMediaSourceHolderInternal(androidx.media3.exoplayer.source.preload.BasePreloadManager.MediaSourceHolder,androidx.media3.exoplayer.source.preload.DefaultPreloadManager.PreloadStatus)( mediaSourceHolder: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder!, targetPreloadStatus: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.PreloadStatus! )` Preloads the given `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager#releaseInternal()()` Releases the preload manager, see `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#release()`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager#releaseMediaSourceHolderInternal(androidx.media3.exoplayer.source.preload.BasePreloadManager.MediaSourceHolder)( mediaSourceHolder: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder! )` Releases the given `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder`. |

### Inherited functions

From [androidx.media3.exoplayer.source.preload.BasePreloadManager](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#add(androidx.media3.common.MediaItem,T)(mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!, rankingData: T!)`

Adds a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` with its `rankingData` to the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#add(androidx.media3.exoplayer.source.MediaSource,T)(mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!, rankingData: T!)`

Adds a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` with its `rankingData` to the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#addListener(androidx.media3.exoplayer.source.preload.PreloadManagerListener)(listener: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadManagerListener!)`

Adds a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadManagerListener` to listen to the preload events.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#addMediaItems(java.util.List<androidx.media3.common.MediaItem>,java.util.List<T>)(
mediaItems: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!>!,
rankingDataList: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<T!>!
)`

Adds a list of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` with their `rankingData` to the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#addMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>,java.util.List<T>)(
mediaSources: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!>!,
rankingDataList: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<T!>!
)`

Adds a list of `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` with their `rankingData` to the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#clearListeners()()`

Clears all the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadManagerListener`.
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#getMediaSource(androidx.media3.common.MediaItem)(mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!)`

Returns the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` for the given `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`.
`https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#getMediaSourceHolderToClear()()` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#getSourceCount()()`

Gets the count of the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` currently being managed by the preload manager.
`PreloadStatusT?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#getTargetPreloadStatusIfCurrentlyPreloading(androidx.media3.common.MediaItem)(mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!)` `PreloadStatusT?` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#getTargetPreloadStatusIfCurrentlyPreloading(androidx.media3.exoplayer.source.MediaSource)(mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!)` `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#invalidate()()`

Invalidates the current preload progress, and triggers a new preload progress based on the new priorities of the managed `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#onCompleted(androidx.media3.common.MediaItem,com.google.common.base.Predicate<PreloadStatusT>)(
mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!,
shouldNotifyListenerAndAdvancePredicate: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/base/Predicate.html<PreloadStatusT!>!
)`

Called when the given `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` completes preloading.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#onCompleted(androidx.media3.exoplayer.source.MediaSource,com.google.common.base.Predicate<PreloadStatusT>)(
mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!,
shouldNotifyListenerAndAdvancePredicate: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/base/Predicate.html<PreloadStatusT!>!
)`

Called when the given `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` completes preloading.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#onError(androidx.media3.exoplayer.source.preload.PreloadException,androidx.media3.common.MediaItem,com.google.common.base.Predicate<PreloadStatusT>)(
error: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadException!,
mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!,
shouldNotifyListenerAndAdvancePredicate: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/base/Predicate.html<PreloadStatusT!>!
)`

Called when an error occurs.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#onError(androidx.media3.exoplayer.source.preload.PreloadException,androidx.media3.exoplayer.source.MediaSource,com.google.common.base.Predicate<PreloadStatusT>)(
error: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadException!,
mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!,
shouldNotifyListenerAndAdvancePredicate: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/base/Predicate.html<PreloadStatusT!>!
)`

Called when an error occurs.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#onMediaSourceUpdated(androidx.media3.common.MediaItem,androidx.media3.exoplayer.source.MediaSource)(
mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!,
updatedMediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!
)`

Called when the given `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` has its corresponding `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` updated.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#onSkipped(androidx.media3.exoplayer.source.MediaSource,com.google.common.base.Predicate<PreloadStatusT>)(
mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!,
shouldAdvancePredicate: https://guava.dev/releases/snapshot-android/api/docs/com/google/common/base/Predicate.html<PreloadStatusT!>!
)`

Called when the given `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` has been skipped before completing preloading.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#onSourceCleared()()`

Called when there is a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` has been cleared.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#release()()`

Releases the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#remove(androidx.media3.common.MediaItem)(mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!)`

Removes a `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` from the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#remove(androidx.media3.exoplayer.source.MediaSource)(mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!)`

Removes a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` from the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#removeListener(androidx.media3.exoplayer.source.preload.PreloadManagerListener)(listener: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadManagerListener!)`

Removes a `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/PreloadManagerListener`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#removeMediaItems(java.util.List<androidx.media3.common.MediaItem>)(mediaItems: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!>!)`

Removes a list of `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` from the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#removeMediaSources(java.util.List<androidx.media3.exoplayer.source.MediaSource>)(mediaSources: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource!>!)`

Removes a list of `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` from the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#reset()()`

Resets the preload manager.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#shouldStartPreloadingNextSource()()`

Returns whether the next `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` should start preloading.

### Inherited properties

From [androidx.media3.exoplayer.source.preload.BasePreloadManager](https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager) `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/RankingDataComparator<T!>!` `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#rankingDataComparator()`

## Public functions

### setCurrentPlayingIndex

```
fun setCurrentPlayingIndex(currentPlayingIndex: Int): Unit
```

Sets the index of the current playing media.

| Parameters |
|---|---|
| `currentPlayingIndex: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of current playing media. |

## Protected functions

### createMediaSourceHolder

```
protected fun createMediaSourceHolder(
    mediaItem: MediaItem!,
    mediaSource: MediaSource?,
    rankingData: Int!
): BasePreloadManager.MediaSourceHolder!
```

Returns the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder` that the preload manager creates for preloading based on the given `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem` and `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource`.

| Parameters |
|---|---|
| `mediaItem: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaItem`. |
| `mediaSource: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource?` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource` based on which the preload manager creates for preloading. |
| `rankingData: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html!` | The ranking data that is associated with the `mediaItem`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder!` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder` the preload manager creates for preloading. |

### preloadMediaSourceHolderInternal

```
protected fun preloadMediaSourceHolderInternal(
    mediaSourceHolder: BasePreloadManager.MediaSourceHolder!,
    targetPreloadStatus: DefaultPreloadManager.PreloadStatus!
): Unit
```

Preloads the given `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder`.

| Parameters |
|---|---|
| `mediaSourceHolder: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder!` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder` to preload. |
| `targetPreloadStatus: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/DefaultPreloadManager.PreloadStatus!` | The target preload status. |

### releaseInternal

```
protected fun releaseInternal(): Unit
```

Releases the preload manager, see `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager#release()`.

### releaseMediaSourceHolderInternal

```
protected fun releaseMediaSourceHolderInternal(
    mediaSourceHolder: BasePreloadManager.MediaSourceHolder!
): Unit
```

Releases the given `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder`.

| Parameters |
|---|---|
| `mediaSourceHolder: https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder!` | The `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/preload/BasePreloadManager.MediaSourceHolder` to remove. |