@UnstableApi
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 functions

Unit

Permanently cancels the downloading by this downloader.

Unit

Downloads the content.

Unit

Removes the content.

Public functions

cancel

fun cancel(): Unit

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

fun download(progressListener: Downloader.ProgressListener?): Unit

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
progressListener: Downloader.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

fun remove(): Unit

Removes the content.