Class HlsDownloader
- java.lang.Object
-
- com.google.android.exoplayer2.offline.SegmentDownloader<HlsPlaylist>
-
- com.google.android.exoplayer2.source.hls.offline.HlsDownloader
-
- All Implemented Interfaces:
Downloader
@Deprecated public final class HlsDownloader extends SegmentDownloader<HlsPlaylist>
Deprecated.com.google.android.exoplayer2 is deprecated. Please migrate to androidx.media3 (which contains the same ExoPlayer code). See the migration guide for more details, including a script to help with the migration.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( new MediaItem.Builder() .setUri(playlistUri) .setStreamKeys( Collections.singletonList( new StreamKey(HlsMultivariantPlaylist.GROUP_INDEX_VARIANT, 0))) .build(), Collections.singletonList(); // Perform the download. hlsDownloader.download(progressListener); // Use the downloaded data for playback. HlsMediaSource mediaSource = new HlsMediaSource.Factory(cacheDataSourceFactory).createMediaSource(mediaItem);
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.android.exoplayer2.offline.SegmentDownloader
SegmentDownloader.Segment
-
Nested classes/interfaces inherited from interface com.google.android.exoplayer2.offline.Downloader
Downloader.ProgressListener
-
-
Field Summary
-
Fields inherited from class com.google.android.exoplayer2.offline.SegmentDownloader
DEFAULT_MAX_MERGED_SEGMENT_START_TIME_DIFF_MS
-
-
Constructor Summary
Constructors Constructor Description HlsDownloader(MediaItem mediaItem, CacheDataSource.Factory cacheDataSourceFactory)Deprecated.Creates a new instance.HlsDownloader(MediaItem mediaItem, CacheDataSource.Factory cacheDataSourceFactory, Executor executor)Deprecated.Creates a new instance.HlsDownloader(MediaItem mediaItem, ParsingLoadable.Parser<HlsPlaylist> manifestParser, CacheDataSource.Factory cacheDataSourceFactory, Executor executor)Deprecated.HlsDownloader(MediaItem mediaItem, ParsingLoadable.Parser<HlsPlaylist> manifestParser, CacheDataSource.Factory cacheDataSourceFactory, Executor executor, long maxMergedSegmentStartTimeDiffMs)Deprecated.Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected List<SegmentDownloader.Segment>getSegments(DataSource dataSource, HlsPlaylist manifest, boolean removing)Deprecated.Returns a list of all downloadableSegmentDownloader.Segments for a given manifest.-
Methods inherited from class com.google.android.exoplayer2.offline.SegmentDownloader
cancel, download, execute, getCompressibleDataSpec, getManifest, remove
-
-
-
-
Constructor Detail
-
HlsDownloader
public HlsDownloader(MediaItem mediaItem, CacheDataSource.Factory cacheDataSourceFactory)
Deprecated.Creates a new instance.- Parameters:
mediaItem- TheMediaItemto be downloaded.cacheDataSourceFactory- ACacheDataSource.Factoryfor the cache into which the download will be written.
-
HlsDownloader
public HlsDownloader(MediaItem mediaItem, CacheDataSource.Factory cacheDataSourceFactory, Executor executor)
Deprecated.Creates a new instance.- Parameters:
mediaItem- TheMediaItemto be downloaded.cacheDataSourceFactory- ACacheDataSource.Factoryfor the cache into which the download will be written.executor- AnExecutorused to make requests for the media being downloaded. Providing anExecutorthat uses multiple threads will speed up the download by allowing parts of it to be executed in parallel.
-
HlsDownloader
@Deprecated public HlsDownloader(MediaItem mediaItem, ParsingLoadable.Parser<HlsPlaylist> manifestParser, CacheDataSource.Factory cacheDataSourceFactory, Executor executor)
Deprecated.
-
HlsDownloader
public HlsDownloader(MediaItem mediaItem, ParsingLoadable.Parser<HlsPlaylist> manifestParser, CacheDataSource.Factory cacheDataSourceFactory, Executor executor, long maxMergedSegmentStartTimeDiffMs)
Deprecated.Creates a new instance.- Parameters:
mediaItem- TheMediaItemto be downloaded.manifestParser- A parser for HLS playlists.cacheDataSourceFactory- ACacheDataSource.Factoryfor the cache into which the download will be written.executor- AnExecutorused to make requests for the media being downloaded. Providing anExecutorthat uses multiple threads will speed up the download by allowing parts of it to be executed in parallel.maxMergedSegmentStartTimeDiffMs- The maximum difference of the start time of two segments, up to which the segments (of the same URI) should be merged into a single download segment, in milliseconds.
-
-
Method Detail
-
getSegments
protected List<SegmentDownloader.Segment> getSegments(DataSource dataSource, HlsPlaylist manifest, boolean removing) throws IOException, InterruptedException
Deprecated.Description copied from class:SegmentDownloaderReturns a list of all downloadableSegmentDownloader.Segments for a given manifest. Any required data should be loaded usingSegmentDownloader.getManifest(com.google.android.exoplayer2.upstream.DataSource, com.google.android.exoplayer2.upstream.DataSpec, boolean)orSegmentDownloader.execute(com.google.android.exoplayer2.util.RunnableFutureTask<T, ?>, boolean).- Specified by:
getSegmentsin classSegmentDownloader<HlsPlaylist>- Parameters:
dataSource- TheDataSourcethrough which to load any required data.manifest- The manifest containing the segments.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 anIOExceptionwill be thrown in this case.- Returns:
- The list of downloadable
SegmentDownloader.Segments. - Throws:
IOException- Thrown ifallowPartialIndexis false and an execution error occurs, or if the media is not in a form that allows for its segments to be listed.InterruptedException
-
-