Jouer les fichiers mp3 à partir de cartes SD

J'ai un répertoire sur ma tablette SD carte appelée "/Android/data/com.exemple.android.app/fichiers". Je viens de créer manuellement car je ne sais pas comment le tester cet aspect de mon application. J'ai les noms de fichiers stockés dans une base de données sqlite comme "/dossier1/audio1.mp3", "/dossier2/audio1.mp3, etc... les fichiers ont Le même nom, mais sont dans des dossiers différents, car ils sont la même chose est en différentes langues. J'ai ces dossiers (dossier1 et dossier2) et tous les fichiers mp3 dans le fichier "/Android/data/com.exemple.android.app/fichiers" répertoire sur la carte SD.

Donc, je reçois les noms de fichier de la base de données et j'ai ESSAYER de faire le dossier sur la carte SD avec:

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.example.android.app/files";

Qui fait juste finit par faire le chemin "de stockage/Android/data/com.exemple.android.app/fichiers".

Maintenant, j'ai quelques fichiers mp3 dans mes brutes dossier au cours du développement précoce, mais il y a trop de fichiers à la fin pour garder dans ce dossier, j'ai donc commencé à étudier les obtenir à partir de la carte SD. Quand je les ai eu en raw, je les ai fait comme ceci:

rid = getResources().getIdentifier(filname,  "raw", "com.example.android.app");

Maintenant, avec les fichiers sur la carte SD, que les modifications apportées à:

filename = "/folder1/audio.mp3"

et au lieu de "raw", j'ai:

"storage/Android/data/com.example.android.app/files"

et essentiellement joué comme ça:

AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(rid);
mMP.reset();
mMP.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mMP.prepare();
mMP.start();
afd.close();

Toutefois, aucun de cette approche semble fonctionner de la même façon maintenant.

Pouvez-vous obtenir le resourceid à partir d'un fichier mp3 sur la carte SD? C'est que même le meilleur moyen pour moi de le faire maintenant? Est-il un autre moyen que je devrais être en train de jouer leur fera le travail si la source est la mémoire interne ou externe?

Confus.

EDIT:
Je n'ai trouver cette qui pourraient t'aider...mais c'est peut-être seulement de l'équation.

EDIT2:
Et je suis à la recherche ici. Il utilise mediastore qui je ne pense pas qu'est ce que je veux.

OriginalL'auteur Metallicraft | 2011-11-05