Я пытаюсь загрузить фрагменты DASH, зашифрованные Clear Key, для автономной потоковой передачи, используя следующий код, но загрузка зависает на уровне 0 % и создается только файл .uid с номером 0B. Вот фрагмент кода, который я использую:
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);
}
});
}
Я проверил, предоставлены ли необходимые разрешения и что URL-адрес правильный и доступен. Несмотря на это, загрузка не происходит и никакие фрагменты не загружаются. Мы будем очень признательны за любые идеи или предложения о том, как решить эту проблему.
Я пытаюсь загрузить фрагменты DASH, зашифрованные Clear Key, для автономной потоковой передачи, используя следующий код, но загрузка зависает на уровне 0 % и создается только файл .uid с номером 0B. Вот фрагмент кода, который я использую: [code] 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 );
@Override public void onPrepareError(DownloadHelper helper, IOException e) { Log.e("DownloadHelper", "Failed to prepare download", e); } }); }
[/code] Я проверил, предоставлены ли необходимые разрешения и что URL-адрес правильный и доступен. Несмотря на это, загрузка не происходит и никакие фрагменты не загружаются. Мы будем очень признательны за любые идеи или предложения о том, как решить эту проблему.