Reproducir sonidos mp3 desde la tarjeta SD
Tengo un directorio en la tarjeta SD de mi tableta llamado "/Android/data/com.example.android.app/files". Lo acabo de crear manualmente porque no sé cómo probar este aspecto de mi aplicación. Tengo nombres de archivo almacenados en una base de datos sqlite como "/folder1/audio1.mp3", "/folder2/audio1.mp3", etc. Los archivos tienen los mismos nombres, pero están en carpetas diferentes, ya que son lo mismo. Es diferentes idiomas. Tengo esas carpetas (carpeta1 y carpeta2) y todos los archivos mp3 en el directorio "/Android/data/com.example.android.app/files" en la tarjeta SD.
Por lo tanto, obtengo los nombres de archivo de la base de datos y TRATO para llegar a la carpeta en la tarjeta SD con:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.example.android.app/files";
Lo que básicamente termina haciendo la ruta "almacenamiento / Android / data / com.example.android.app / files".
Ahora, tuve algunos archivos mp3 en mi carpeta sin procesar durante el desarrollo inicial, pero al final habrá demasiados archivos para guardar en esa carpeta, así que comencé a investigar cómo obtenerlos de la tarjeta SD. Cuando los tuve en crudo, los obtuve así:
rid = getResources().getIdentifier(filname, "raw", "com.example.android.app");
Ahora, con los archivos en la tarjeta SD, eso cambia a:
filename = "/folder1/audio.mp3"
y en lugar de "crudo" tengo:
"storage/Android/data/com.example.android.app/files"
y básicamente los jugó así:
AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(rid);
mMP.reset();
mMP.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mMP.prepare();
mMP.start();
afd.close();
Sin embargo, ninguno de estos enfoques parece funcionar de la misma manera ahora.
¿Puede obtener el resourceid de un archivo mp3 en la tarjeta SD? ¿Es esa la forma adecuada de hacerlo ahora? ¿Hay alguna forma diferente de reproducirlos que funcione si la fuente es memoria interna o externa?
ompletamente confundido.
EDIT: encontréest lo que podría ayudar ... pero tal vez solo tenga la ecuación.
EDIT2: Y estoy buscandoaqu. Utiliza mediastore, que no creo que sea lo que quiero.