Estoy siguiendo todas las guías oficiales de archivos de expansión, pero no puedo encontrarlo. No puedo acceder al archivo OBB contenido que necesito.Accediendo a archivos dentro del archivo de expansión obb
Necesito 6 archivos de audio (80Mb) que "almacené" (descomprimido) en un archivo zip y renombré como 'main.2001.test.expansion.proj.obb' y almacené en '/ mnt/sdcard/Android /obb/test.expansion.proj/'
voy a tratar de acceder a los archivos
String mainFileName = Helpers.getExpansionAPKFileName(this,true,2001);
if(!Helpers.doesFileExist(this, mainFileName, 27959282L, false))
{
//download
} else {
Log.d("test_file","file exist");
}
ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(this,2001,2001);
if(expansionFile!=null)
{
ZipEntryRO[] ziro = expansionFile.getAllEntries();
for (ZipEntryRO entry : ziro) {
Log.d("test_files_zip", "fileZip filename: "+entry.getZipFileName());
try{
AssetFileDescriptor ro = entry.getAssetFileDescriptor();
Log.d("test_files_zip", "--fileZip getfiledescriptor.tostring: "+ro.getFileDescriptor().toString());
Log.d("test_files_zip", "--fileZip createinputstring.tostring: "+ro.createInputStream().toString());
AssetFileDescriptor assetFileDescriptor = expansionFile.getAssetFileDescriptor(entry.getZipFileName()+"/audio02.mp3");
if(assetFileDescriptor!=null) {
Log.d("test_files_mp3", "length: "+assetFileDescriptor.getLength()); //checking it exists
}
}catch (IOException e){ Log.e("test_exp","IoExcp: "+e.getMessage()); }
}
}
En -> assetFileDescriptor = expansionFile.getAssetFileDescriptor (.....); He intentado todo lo que descubrí y encontré en diferentes lugares, pero no pude tomar el archivo. ¿Hay alguna manera de obtener el archivo de su nombre si está dentro del zip?
La aplicación debe reproducir estos archivos en un orden específico y no queremos descomprimir los archivos y hacerlos "" públicos "".
Editado. Responda a mí mismo
Encontrado, era una línea que no entendí cuando la leí por primera vez o simplemente la extraño.
ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(this,2001,2001);
if(expansionFile!=null){
FileDescriptor fd = expansionFile.getAssetFileDescriptor("audio_01.mp3");
//or
InputStream is = expansionFile.getInputStream("audio_01.mp3");
}
puede haber este asnwer le ayudará de alguna manera http://stackoverflow.com/questions/11715855/steps-to-create-apk-expansion-file/11717019#11717019 –
No, es una de las fuentes i lo he usado, pero nada acerca de leer un archivo dentro del obb. – Jordi
Intenté 'AssetFileDescriptor fd = expansionFile.getAssetFileDescriptor (zip [0] .mFileName);'. pero 'fd' es nulo. ¿me puedes ayudar? –