@UnstableApi
public interface Downloader

Known direct subclasses
ProgressiveDownloader

A downloader for progressive media streams.

SegmentDownloader

Base class for multi segment stream downloaders.

Known indirect subclasses
DashDownloader

A downloader for DASH streams.

HlsDownloader

A downloader for HLS streams.

SsDownloader

A downloader for SmoothStreaming streams.


Downloads and removes a piece of content.

Summary

Nested types

Receives progress updates during download operations.

Public methods

abstract void

Permanently cancels the downloading by this downloader.

abstract void

Downloads the content.

abstract void

Removes the content.

Public methods

cancel

abstract 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

abstract 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

abstract void remove()

Removes the content.