Class ProgressiveDownloader

  • All Implemented Interfaces:
    Downloader

    public final class ProgressiveDownloader
    extends Object
    implements Downloader
    A downloader for progressive media streams.
    • Constructor Detail

      • ProgressiveDownloader

        public ProgressiveDownloader​(MediaItem mediaItem,
                                     CacheDataSource.Factory cacheDataSourceFactory)
        Creates a new instance.
        Parameters:
        mediaItem - The media item with a uri to the stream to be downloaded.
        cacheDataSourceFactory - A CacheDataSource.Factory for the cache into which the download will be written.
      • ProgressiveDownloader

        public ProgressiveDownloader​(MediaItem mediaItem,
                                     CacheDataSource.Factory cacheDataSourceFactory,
                                     Executor executor)
        Creates a new instance.
        Parameters:
        mediaItem - The media item with a uri to the stream to be downloaded.
        cacheDataSourceFactory - A CacheDataSource.Factory for the cache into which the download will be written.
        executor - An Executor used to make requests for the media being downloaded. In the future, providing an Executor that uses multiple threads may speed up the download by allowing parts of it to be executed in parallel.
    • Method Detail

      • download

        public void download​(@Nullable
                             Downloader.ProgressListener progressListener)
                      throws IOException,
                             InterruptedException
        Description copied from interface: Downloader
        Downloads the content.

        If downloading fails, this method can be called again to resume the download. It cannot be called again after the download has been canceled.

        If downloading is canceled whilst this method is executing, then it is expected that it will return reasonably quickly. However, there are no guarantees about how the method will return, meaning that it can return without throwing, or by throwing any of its documented exceptions. The caller must use its own knowledge about whether downloading has been canceled to determine whether this is why the method has returned, rather than relying on the method returning in a particular way.

        Specified by:
        download in interface Downloader
        Parameters:
        progressListener - A listener to receive progress updates, or null.
        Throws:
        IOException - If the download failed to complete successfully.
        InterruptedException - If the download was interrupted.
      • remove

        public void remove()
        Description copied from interface: Downloader
        Removes the content.
        Specified by:
        remove in interface Downloader