# androidx.media3.datasource.cache

# androidx.media3.datasource.cache

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/datasource/cache/package-summary "View this page in Java")

## Interfaces

|------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| [Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)                                                 | A cache that supports partial caching of resources.                                                                                  |
| [Cache.Listener](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache.Listener)                               | Listener of[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)events.                     |
| [CacheDataSource.EventListener](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSource.EventListener) | Listener of[CacheDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSource)events. |
| [CacheEvictor](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheEvictor)                                   | Evicts data from a[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache).                    |
| [CacheKeyFactory](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheKeyFactory)                             | Factory for cache keys.                                                                                                              |
| [CacheWriter.ProgressListener](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheWriter.ProgressListener)   | Receives progress updates during cache operations.                                                                                   |
| [ContentMetadata](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata)                             | Interface for an immutable snapshot of keyed metadata.                                                                               |

## Classes

|------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [CacheDataSink](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSink)                                 | Writes data into a cache.                                                                                                                                                                                                                         |
| [CacheDataSink.Factory](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSink.Factory)                 | [DataSink.Factory](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSink.Factory)for[CacheDataSink](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSink)instances.         |
| [CacheDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSource)                             | A[DataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource)that reads and writes a[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache).                         |
| [CacheDataSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSource.Factory)             | [DataSource.Factory](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource.Factory)for[CacheDataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSource)instances. |
| [CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)                                         | Defines a span of data that may or may not be cached (as indicated by[isCached](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan#isCached())).                                                           |
| [CacheWriter](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheWriter)                                     | Caching related utility methods.                                                                                                                                                                                                                  |
| [ContentMetadataMutations](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadataMutations)           | Defines multiple mutations on metadata value which are applied atomically.                                                                                                                                                                        |
| [DefaultContentMetadata](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/DefaultContentMetadata)               | Default implementation of[ContentMetadata](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/ContentMetadata).                                                                                                      |
| [LeastRecentlyUsedCacheEvictor](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/LeastRecentlyUsedCacheEvictor) | Evicts least recently used cache files first.                                                                                                                                                                                                     |
| [NoOpCacheEvictor](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor)                           | Evictor that doesn't ever evict cache files.                                                                                                                                                                                                      |
| [SimpleCache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/SimpleCache)                                     | A[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)implementation that maintains an in-memory representation.                                                                                         |

## Exceptions

|--------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| [Cache.CacheException](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache.CacheException)                                 | Thrown when an error is encountered when writing data.                                                                                     |
| [CacheDataSink.CacheDataSinkException](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSink.CacheDataSinkException) | Thrown when an[IOException](https://developer.android.com/reference/java/io/IOException.html)is encountered when writing data to the sink. |

## Annotations

|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|
| [CacheDataSource.CacheIgnoredReason](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSource.CacheIgnoredReason) | Reasons the cache may be ignored.                 |
| [CacheDataSource.Flags](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheDataSource.Flags)                           | Flags controlling the CacheDataSource's behavior. |