Я сжал большое количество аудиофайлов в один tar-файл.
Причина, по которой я использую tar-архив вместо zip-архива, заключается в том, что даже если он загружен не полностью, его файлы будут открываться, пока они были загружены.
Можно ли настроить zip-архив, как tar-архив, чтобы его можно было открывать, даже если он загружен не полностью?
Если ответ отрицательный, как воспроизводить аудиофайлы непосредственно из tar-файла?
Мне удалось воспроизвести аудиофайлы из zip-файла с помощью библиотеки ZipResourceFile, но, к сожалению, эта библиотека не поддерживает tar-архив:
ZipResourceFile expansionFile = new ZipResourceFile(getExternalFilesDir(null) + File.separator + obb_filename);
AssetFileDescriptor afd = expansionFile.getAssetFileDescriptor(
(String) books_list.get(positiono).get("Sot")
);
if (afd != null) {
player.setDataSource(afd.getFileDescriptor(),
afd.getStartOffset(), afd.getLength());
afd.close();
player.prepare();
player.start();
} else {
player.stop();
}
Неполные или поврежденные архивы невозможно открыть, поэтому все их содержимое нечитаемо. Я думаю, что только несколько типов кодеков СПЕЦИАЛЬНОГО сжатия могут позволить открывать свои архивы, даже если они неполные / поврежденные, но их степень сжатия может быть ограничена. Однако "ZipResourceFile" просто распаковывает файлы в памяти, поэтому настоящий "PLAY" использует in-memory вместо сохранения, если в хранилище .... но это почти то же самое, чтобы сохранить его в папку Temp, а затем воспроизвести обычный сохраненный файл .