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
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas obtenir l'ID de ressource pour un mp3 dans votre carte SD, parce que le mp3 n'appartient pas au dossier de ressources dans votre projet et n'a donc aucune ID de ressource.
À partir de l'Android Guide pour les Développeurs:
Afin d'être en mesure de jouer des fichiers mp3 à partir à la fois la mémoire interne et la carte SD, vous pouvez faire quelque chose comme ceci:
Ce n'est qu'un exemple pour montrer comment ça pourrait fonctionner, de toute évidence, vous devez le modifier pour pointer vers le dossier où votre fichier audio est stocké et gérer de manière adéquate les exceptions dont vous avez besoin.
EDIT:
Aussi, vous pouvez voir un exemple plus complexe de la façon de jouer les audios à partir de la carte SD ici:
https://github.com/ankidroid/Anki-Android/blob/develop/AnkiDroid/src/main/java/com/ichi2/libanki/Sound.java
le lien est cassé
Merci pour elle, elle devrait être corrigé maintenant.
OriginalL'auteur Edu Zamora
chemin du dossier racine peut être variable dans les appareils android, par exemple, il peut être
/mnt/sdcard
dans un appareil et un autre peut être/sdcard/
.par conséquent, vous pouvez utiliser un moyen facile pour l'extractionroot
dossier à l'aide deandroid.os.Environment.getExternalStorageDirectory();
et après definig, u peut directory point à votre répertoire à l'interne ou à l'externe chemin que tu veux.par exemple: (
try catch
peut généré par l'IDE automatiquement)OriginalL'auteur Vahid_EL