Downloads and offline playback series¶
Using the download API¶
To interact with the download API we need to create an EnigmaDownload
instance.
IEnigmaDownload enigmaDownload = new EnigmaDownload(businessUnit);
This instance can be reused or recreated as a matter of preference.
public interface IEnigmaDownload {
// simple method to return boolean if the asset if expired
void isExpired(String assetId, ISession session, IResultHandler<Boolean> resultHandler);
// method to return expiry time
void getExpiryTime(String assetId, ISession session, IResultHandler<Long> resultHandler);
void getDownloadableInfo(String assetId, ISession session, IResultHandler<IDownloadableInfo> resultHandler);
void getDownloadableInfo(String assetId, ISession session, IResultHandler<IDownloadableInfo> resultHandler, Handler handler);
void startAssetDownload(context, DownloadStartRequest request, IDownloadStartResultHandler resultHandler);
void startAssetDownload(context, DownloadStartRequest request, IDownloadStartResultHandler resultHandler, Handler handler);
void getDownloadedAssets(IResultHandler<List<DownloadedPlayable>> resultHandler);
void getDownloadedAssets(IResultHandler<List<DownloadedPlayable>> resultHandler, Handler handler);
// return downloads asset for this session token
void getDownloadedAssets(ISession session, IResultHandler<List<DownloadedPlayable>> resultHandler);
void getDownloadedAssets(ISession session, IResultHandler<List<DownloadedPlayable>> resultHandler, Handler handler);
void removeDownloadedAsset(DownloadedPlayable downloadedPlayable, IResultHandler<Void> resultHandler);
void removeDownloadedAsset(DownloadedPlayable downloadedPlayable, IResultHandler<Void> resultHandler, Handler handler);
void getDownloadsInProgress(IResultHandler<List<IAssetDownload>> resultHandler);
void getDownloadsInProgress(IResultHandler<List<IAssetDownload>> resultHandler, Handler handler);
// return downloads in progress asset for this session token
void getDownloadsInProgress(ISession session, IResultHandler<List<IAssetDownload>> resultHandler);
void getDownloadsInProgress(ISession session, IResultHandler<List<IAssetDownload>> resultHandler, Handler handler);
}
Every method is potentially asynchronous and finishes by calling one method on
the {callback object}/{result handler}. If the version of a method with a android.os.Handler
is used
the SDK will invoke the result handler object using the handler. This can be useful to ensure
callbacks are executed on the main/UI thread. If the version of a method without a Handler
is used
the SDK makes no guarantees about which thread the callback will be made on.
Table of Contents
Prerequisites
Gradle dependencies
Check if an asset is downloadable
• Using the download API (current)
Get available tracks for download
Start asset download
Managing ongoing downloads
Listing downloaded assets
Start playback of a downloaded asset
Remove downloaded assets
Downloads app