Я пытаюсь загрузить файл hls, используя HLSDownloader, но пока не получаю лучших результатов.Мой код:
// Main download function
AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... voids) {
downloadHls(VIDEO_URL);
return null;
}
};
asyncTask.execute();
...
// This is the main tool to download hls
private HlsDownloader hlsDownloader;
private void downloadHls(String masterHLS) {
hlsDownloader = getHlsDownloader(masterHLS);
try {
hlsDownloader.download(this);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private HlsDownloader getHlsDownloader(String mediaPlaylistUri) {
File downloadFolder = new File(getFilesDir(), "video_id_2");
SimpleCache cache = new SimpleCache(downloadFolder, new NoOpCacheEvictor());
DefaultHttpDataSourceFactory factory = new DefaultHttpDataSourceFactory("ExoPlayer", null);
CacheDataSource cacheDataSource =
new CacheDataSource(cache, factory.createDataSource(), CacheDataSource.FLAG_BLOCK_ON_CACHE);
// Create a downloader for the first variant in a master playlist.
return new HlsDownloader(
Uri.parse(mediaPlaylistUri), new DownloaderConstructorHelper(cache, factory));
}
Кажется, загрузка начинается, и я получаю прогресс загрузки, но я не могу получить доступ к загруженному файлу (возможно, нетсуществует), поэтому я не знаю, хорошо ли я пишу код.Хотелось бы получить некоторую помощь.
РЕДАКТИРОВАНИЕ:
В настоящее время у меня есть загрузка несколькими порциями (я забыл добавить разрешение на запись в манифест) всеназван как * .ve.exo файлы расширения, но я не знаю, как их воспроизводить, есть идеи?