Reproduza sons mp3 do cartão SD
Tenho um diretório no cartão SD do meu tablet chamado "/Android/data/com.example.android.app/files". Acabei de criar manualmente porque não sei mais como testar esse aspecto do meu aplicativo. Eu tenho nomes de arquivos armazenados em um banco de dados sqlite como "/pasta1/audio1.mp3", "/pasta2/audio1.mp3", etc ... Os arquivos têm o mesmo nome, mas estão em pastas diferentes, pois são a mesma coisa é idiomas diferentes. Eu tenho essas pastas (pasta1 e pasta2) e todos os arquivos mp3 no diretório "/Android/data/com.example.android.app/files" no cartão SD.
Então, pego os nomes dos arquivos no banco de dados e Tento acessar a pasta no cartão SD com:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.example.android.app/files";
O que basicamente acaba criando o caminho "storage / Android / data / com.example.android.app / files".
Agora, eu tinha alguns arquivos mp3 na minha pasta raw durante o desenvolvimento inicial, mas no final haverá muitos arquivos para manter nessa pasta, então comecei a investigar a obtenção deles no cartão SD. Quando eu as coloquei em bruto, as comprei assim:
rid = getResources().getIdentifier(filname, "raw", "com.example.android.app");
Agora, com os arquivos no cartão SD, isso muda para:
filename = "/folder1/audio.mp3"
e, em vez de "bruto", tenho:
"storage/Android/data/com.example.android.app/files"
e basicamente jogou-os assim:
AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(rid);
mMP.reset();
mMP.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mMP.prepare();
mMP.start();
afd.close();
No entanto, nenhuma dessas abordagens parece funcionar da mesma maneira agor
Você pode obter o resourceid de um arquivo mp3 no cartão SD? Essa é a maneira apropriada para eu fazer agora? Existe uma maneira diferente de reproduzi-los que funcione se a fonte é memória interna ou externa?
Muito confuso.
EDIT: eu encontreiest o que pode ajudar ... mas talvez seja apenas a equaçã
EDIT2: E eu estou procurandoaqu. Ele usa o mediastore, que eu acho que não é o que eu quer