# PreCacheHelper

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

*** ** * ** ***


```
@UnstableApi
public final class PreCacheHelper
```

<br />

*** ** * ** ***

A helper for pre-caching a single media.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper.Factory` A factory for `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper`. |
| `public interface https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper.Listener` A listener for `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper` events. |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper#preCache(long,long)(long startPositionMs, long durationMs)` Pre-caches the underlying media from a `startPositionMs` and for a `durationMs`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper#release(boolean)(boolean removeCachedContent)` Releases the `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper`. |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper#stop()()` Stops the pre-caching. |

## Public methods

### preCache

```
public void preCache(long startPositionMs, long durationMs)
```

Pre-caches the underlying media from a `startPositionMs` and for a `durationMs`.

Can be called from any thread.

| Parameters |
|---|---|
| `long startPositionMs` | The start position from which the media should be pre-cached, in milliseconds. |
| `long durationMs` | The duration for which the media should be pre-cached, in milliseconds. |

### release

```
public void release(boolean removeCachedContent)
```

Releases the `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper`.

Can be called from any thread.

| Parameters |
|---|---|
| `boolean removeCachedContent` | Whether the cached content should be removed. If `true`, the `https://developer.android.com/reference/androidx/media3/exoplayer/source/preload/PreCacheHelper` will create a new thread to remove the cached content. |

### stop

```
public void stop()
```

Stops the pre-caching.

Can be called from any thread.