HlsDownloader
@UnstableApi
public final class HlsDownloader extends SegmentDownloader
| java.lang.Object | ||
| ↳ | androidx.media3.exoplayer.offline.SegmentDownloader | |
| ↳ | androidx.media3.exoplayer.hls.offline.HlsDownloader |
A downloader for HLS streams.
Example usage:
SimpleCache cache = new SimpleCache(downloadFolder, new NoOpCacheEvictor(), databaseProvider); CacheDataSource.Factory cacheDataSourceFactory = new CacheDataSource.Factory() .setCache(cache) .setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()); // Create a downloader for the first variant in a multivariant playlist. HlsDownloader hlsDownloader = new HlsDownloader.Factory(cacheDataSourceFactory) .create(new MediaItem.Builder() .setUri(playlistUri) .setStreamKeys( ImmutableList.of( new StreamKey(HlsMultivariantPlaylist.GROUP_INDEX_VARIANT, 0))) .build()); // Perform the download. hlsDownloader.download(progressListener); // Use the downloaded data for playback. HlsMediaSource mediaSource = new HlsMediaSource.Factory(cacheDataSourceFactory).createMediaSource(mediaItem);
Summary
Nested types |
|---|
public final class HlsDownloader.Factory extends SegmentDownloader.BaseFactoryA factory for |
Public constructors |
|---|
This method is deprecated. Use |
This method is deprecated. Use |
Protected methods |
|
|---|---|
List<SegmentDownloader.Segment> |
getSegments(Returns a list of all downloadable |
Inherited Constants |
||
|---|---|---|
|
Inherited fields |
||||
|---|---|---|---|---|
|
Inherited methods |
||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Public constructors
HlsDownloader
publicHlsDownloader(
MediaItem mediaItem,
CacheDataSource.Factory cacheDataSourceFactory
)
HlsDownloader
publicHlsDownloader(
MediaItem mediaItem,
CacheDataSource.Factory cacheDataSourceFactory,
Executor executor
)
Protected methods
getSegments
protected List<SegmentDownloader.Segment> getSegments(
DataSource dataSource,
HlsPlaylist manifest,
boolean removing
)
Returns a list of all downloadable Segments for a given manifest. Any required data should be loaded using getManifest or execute.
| Parameters | |
|---|---|
DataSource dataSource |
The |
HlsPlaylist manifest |
The manifest containing the segments. |
boolean removing |
Whether the segments are being obtained as part of a removal. If true then a partial segment list is returned in the case that a load error prevents all segments from being listed. If false then an |
| Returns | |
|---|---|
List<SegmentDownloader.Segment> |
The list of downloadable |
| Throws | |
|---|---|
java.io.IOException |
Thrown if |
java.lang.InterruptedException |