Invité Posté(e) 2 octobre 2010 Share Posté(e) 2 octobre 2010 Salut tout le monde ! Dans mon appli, je voudrais donner la possibilité aux utilisateurs de choisir une musique parmi celles présentes sur leur terminal. Ma première version scanne les répertoires suivants: /sdcard/ringtones /sdcard/music /sdcard/alarms /sdcard/notifications /sdcard Environment.getExternalStorageDirectory()+"/ringtones/", Environment.getExternalStorageDirectory()+"/music/", Environment.getExternalStorageDirectory()+"/alarms/", Environment.getExternalStorageDirectory()+"/notifications/", Environment.getExternalStorageDirectory()+"/" Ca marche bien pour mon HTC Magic 1.6, mais... pas pour tout le monde. Du coup, j'ai essayé de faire une fonction récurvise (digne de la théorie de la programmation Java), en partant du répertoire "/" ... Mais là, CATA : ça boucle sur des répertoires system (power.0), proc, etc..... Est-ce que que quelqu'un aurais une méthode (pas forcément le code, je peux faire), pour me permettre de construire cette FOU£µ%£%£% liste ? :-) Merci d'avance pour votre aide !!!! Nek Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 4 octobre 2010 Share Posté(e) 4 octobre 2010 Personne n'a d'idée ? Personne n'a eu besoin de faire une liste de MP3 existantes ??? Nek Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 7 octobre 2010 Share Posté(e) 7 octobre 2010 Trouvé grâce à ce post : https://forum.frandroid.com/forum/viewtopic.php?id=8350 String[] proj = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.DURATION }; this.musicCursor = this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, null, null); if(this.musicCursor!=null){ this.musicCount = musicCursor.getCount(); } else { //No music found } for (int i = 0; i < musicCount; i++) { musicCursor.moveToPosition(i); //Pour récupérer le fichier et son emplacement (pour le MediaPlayer) //musicCursor.getString(musicCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)) //Pour récupérer le titre //musicCursor.getString(musicCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)) // ... et tous les autres } Ca peut servir à d'autres ! A+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
azalsup Posté(e) 8 octobre 2010 Share Posté(e) 8 octobre 2010 c'est normal que ca boucle n'oublions par qu'android cache un peu de linux. Scaner recursivement depuis la racine c'ets dont suicidaire car il y'a plein de lien symboliques qui peuvent te faire boucler à l'infini. tu peu garder ton idée pour scanner mais uniquement certains repertoir comm "/sdcard/" et d'eviter de suivre d'eventuels lien symboliques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.