Воспроизведение звуков mp3 с SD-карты
У меня есть каталог на SD-карте моего планшета под названием «/Android/data/com.example.android.app/files». Я просто создал его вручную, потому что я не знаю, как еще проверить этот аспект моего приложения. У меня есть имена файлов, хранящиеся в базе данных sqlite, такие как "/folder1/audio1.mp3", "/folder2/audio1.mp3" и т. Д. ... Файлы имеют одинаковые имена, но находятся в разных папках, так как они одно и то же это разные языки. У меня есть эти папки (folder1 и folder2) и все mp3-файлы в каталоге "/Android/data/com.example.android.app/files" на SD-карте.
Итак, я получаю имена файлов из базы данных и пытаюсь попасть в папку на SD-карте с помощью:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.example.android.app/files";
Который просто в основном делает путь «хранилище / Android / data / com.example.android.app / files».
Теперь у меня было несколько mp3-файлов в моей сырой папке во время ранней разработки, но в конце будет слишком много файлов, чтобы хранить их в этой папке, поэтому я начал исследовать получение их с SD-карты. Когда я имел их в сыром виде, я получил их так:
rid = getResources().getIdentifier(filname, "raw", "com.example.android.app");
Теперь, с файлами на SD-карте, это меняется на:
filename = "/folder1/audio.mp3"
и вместо "сырого" у меня есть:
"storage/Android/data/com.example.android.app/files"
и в основном играл их так:
AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(rid);
mMP.reset();
mMP.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mMP.prepare();
mMP.start();
afd.close();
Однако ни один из этих подходов, похоже, не работает так же, как сейчас.
Можете ли вы получить ресурс из mp3-файла на SD-карте? Это даже подходящий способ для меня сделать это сейчас? Есть ли другой способ их воспроизведения, который будет работать независимо от того, является ли источник внутренней или внешней памятью?
Тщательно запутался.
РЕДАКТИРОВАТЬ: я нашелэто что может помочь ... но это может быть только из уравнения.
EDIT2: И я смотрюВот, Он использует mediastore, который я не думаю, что я хочу.