ProgressiveDownloader


@UnstableApi
public final class ProgressiveDownloader implements Downloader


A downloader for progressive media streams.

Summary

Public constructors

ProgressiveDownloader(
    MediaItem mediaItem,
    CacheDataSource.Factory cacheDataSourceFactory
)

Creates a new instance.

ProgressiveDownloader(
    MediaItem mediaItem,
    CacheDataSource.Factory cacheDataSourceFactory,
    Executor executor
)

Creates a new instance.

Public methods

void

Permanently cancels the downloading by this downloader.

void

Downloads the content.

void

Removes the content.

Public constructors

ProgressiveDownloader

public ProgressiveDownloader(
    MediaItem mediaItem,
    CacheDataSource.Factory cacheDataSourceFactory
)

Creates a new instance.

Parameters
MediaItem mediaItem

The media item with a uri to the stream to be downloaded.

CacheDataSource.Factory 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 mediaItem

The media item with a uri to the stream to be downloaded.

CacheDataSource.Factory cacheDataSourceFactory

A CacheDataSource.Factory for the cache into which the download will be written.

Executor 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.

Public methods

cancel

public void cancel()

Permanently cancels the downloading by this downloader. The caller should also interrupt the downloading thread immediately after calling this method.

Once canceled, download cannot be called again.

download

public void download(@Nullable Downloader.ProgressListener progressListener)

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.

Parameters
@Nullable Downloader.ProgressListener progressListener

A listener to receive progress updates, or null.

Throws
java.io.IOException

If the download failed to complete successfully.

java.lang.InterruptedException

If the download was interrupted.

java.util.concurrent.CancellationException

If the download was canceled.

remove

public void remove()

Removes the content.