Код: Выделить всё
private void downloadVideo() {
DatabaseProvider databaseProvider = new StandaloneDatabaseProvider(this);
SimpleCache downloadCache = new SimpleCache(new File(getExternalFilesDir(null), "downloads"), new NoOpCacheEvictor(), databaseProvider);
Executor executor = Runnable::run;
DownloadNotificationHelper downloadNotificationHelper = new DownloadNotificationHelper(this, "1");
DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(this);
DownloadManager downloadManager =
new DownloadManager(
this,
databaseProvider,
downloadCache,
dataSourceFactory,
executor
);
DownloadHelper downloadHelper = DownloadHelper.forMediaItem(this, MediaItem.fromUri(Uri.parse(mpdUrl)), new DefaultRenderersFactory(this), dataSourceFactory);
downloadManager.setMaxParallelDownloads(3);
downloadManager.addListener(new DownloadManager.Listener() {
public void onDownloadChanged(DownloadManager downloadManager, Download download, Exception e) {
Log.i("DownloadManager", "Download changed", e);
Log.i("DownloadManager", "Downloaded " + String.valueOf(download.getBytesDownloaded()) + " bytes");
Log.i("DownloadManager", "Downloaded " + String.valueOf(download.getPercentDownloaded()) + "%");
switch (download.state) {
case Download.STATE_QUEUED:
Log.i("DownloadManager", "Download queued");
break;
case Download.STATE_DOWNLOADING:
Log.i("DownloadManager", "Download downloading");
break;
case Download.STATE_COMPLETED:
Log.i("DownloadManager", "Download completed");
break;
case Download.STATE_FAILED:
Log.i("DownloadManager", "Download failed");
break;
case Download.STATE_REMOVING:
Log.i("DownloadManager", "Download removing");
break;
case Download.STATE_RESTARTING:
Log.i("DownloadManager", "Download restarting");
break;
}
}
@Override
public void onIdle(DownloadManager downloadManager) {
Log.i("DownloadManager", "Download idle");
}
@Override
public void onInitialized(DownloadManager downloadManager) {
Log.i("DownloadManager", "Download initialized");
}
});
downloadHelper.prepare(new DownloadHelper.Callback() {
@Override
public void onPrepared(DownloadHelper helper) {
Log.i("DownloadHelper", "Download prepared");
DownloadRequest downloadRequest = helper.getDownloadRequest(Util.getUtf8Bytes(mpdUrl));
downloadManager.addDownload(downloadRequest);
Log.i("DownloadHelper", "Download prepared");
}
@Override
public void onPrepareError(DownloadHelper helper, IOException e) {
Log.e("DownloadHelper", "Failed to prepare download", e);
}
});
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... mpty-uid-f