# androidx.media3.exoplayer.offline

*** ** * ** ***

## Annotations

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download.FailureReason` | Failure reasons. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download.State` | Download states. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadCursor` | Provides random read-write access to the result set returned by a database query. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadHelper.Callback` | A callback to be notified when the `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadHelper` is prepared. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadIndex` | An index of `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadManager.Listener` | Listener for `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadManager` events. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Downloader` | Downloads and removes a piece of content. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Downloader.ProgressListener` | Receives progress updates during download operations. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloaderFactory` | Creates `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Downloader` for given `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/FilterableManifest` | A manifest that can generate copies of itself including only the streams specified by the given keys. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/WritableDownloadIndex` | A writable index of `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download`. |

## Classes

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DefaultDownloadIndex` | A `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadIndex` that uses SQLite to persist `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DefaultDownloaderFactory` | Default `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloaderFactory`, supporting creation of progressive, DASH, HLS and SmoothStreaming downloaders. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download` | Represents state of a download. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadHelper` | A helper for initializing and removing downloads. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadHelper.Factory` | A factory of `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadHelper`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadManager` | Manages downloads. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadNotificationHelper` | Helper for creating download notifications. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadProgress` | Mutable `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download` progress. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest` | Defines content to be downloaded. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest.Builder` | A builder for download requests. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest.ByteRange` | Defines the byte range. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest.TimeRange` | Defines the time range. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadService` | A `https://developer.android.com/reference/android/app/Service.html` for downloading media. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/FilteringManifestParser` | A manifest parser that includes only the streams identified by the given stream keys. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/ProgressiveDownloader` | A downloader for progressive media streams. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/SegmentDownloader` | Base class for multi segment stream downloaders. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/SegmentDownloader.BaseFactory` | A base class of the factory of the concrete extension of `https://developer.android.com/reference/androidx/media3/exoplayer/offline/SegmentDownloader`. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/SegmentDownloader.Segment` | Smallest unit of content to be downloaded. |

## Exceptions

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadException` | Thrown on an error during downloading. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadHelper.LiveContentUnsupportedException` | Thrown at an attempt to download live content. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest.UnsupportedRequestException` | Thrown when the encoded request data belongs to an unsupported request type. |