2013-03-06 5 views
1

Ce que j'essaie de faire, c'est d'obtenir tous les fichiers MP3'URL et Title dans une liste pour le renvoyer. Tous à partir du dossier:/ext_card/Music/et tous les sous-dossiers.Obtention de tous les fichiers MP3 sur la carte externe

les options que j'ai exploré tous semblent se coincer, et toutes les réponses que je l'ai regardé sur le point internet à MediaStore, mais je ne sais pas comment l'utiliser

et ne donnent pas moi les conneries RTFM, parce que les explications que j'ai trouvées pour mediastore sont au mieux retardées.

Est-ce que quelqu'un peut m'aider s'il vous plaît ou donnez-moi un exemple d'une simple requête mediastore de travail pour tous les fichiers mp3?

+0

http://stackoverflow.com/questions/10227895/android-songs-fetching-from-sd-carte, peut-être? – Daler

+0

Je dois juste dire ceci ... Je cherchais le genre de problème, et la phrase: 'Et ne me donnez pas les conneries de RTFM, parce que les explications que j'ai trouvées pour mediastore sont retardées au mieux. 'm'a fait rire à haute voix. Je vous remercie. – Bonatti

Répondre

-1

Voici une façon récursive de faire une telle chose,

getMp3s(Arraylist<File> list, File dir){ 
    File[] files = dir.listFiles(); 
    for(File file : files){ 
     if(file.isDirectory()){ 
      getMp3s(list, file); 
     }else{ 
      //add mp3s to list here 
     } 
    } 
} 
+0

comment votre code reconnaît ce fichier isMp3 ou non? – Daler

+0

Il va vous donner la liste de tous les fichiers, alors vous devez le filtrer. – Jacob

+0

votre réponse n'est pas complète, donc je pense, vous devriez le remplir avec toutes les informations nécessaires ou vous ne devriez pas répondre du tout – Daler

4

Utilisez ce qu'il vous aidera à obtenir tous les morceaux MP3 de CARTE SD

private static ArrayList<genericSongClass> songs = null; 

public void BindAllSongs() {   
     /** Making custom drawable */ 
     String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; 
     final String[] projection = new String[] { 
       MediaStore.Audio.Media.DISPLAY_NAME, 
       MediaStore.Audio.Media.ARTIST, 
       MediaStore.Audio.Media.DATA}; 
       final String sortOrder = MediaStore.Audio.AudioColumns.TITLE 
         + " COLLATE LOCALIZED ASC"; 

       try { 
        // the uri of the table that we want to query 
        Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
        // query the db 
        cursor = getBaseContext().getContentResolver().query(uri, 
          projection, selection, null, sortOrder); 
        if (cursor != null) { 
         songs = new ArrayList<genericSongClass>(cursor.getCount()); 
         cursor.moveToFirst();      
         while (!cursor.isAfterLast()) { 
          GSC = new genericSongClass(); 
          GSC.songTitle = cursor.getString(0); 
          GSC.songArtist = cursor.getString(1); 
          GSC.songData = cursor.getString(2); 
          songs.add(GSC); 
          cursor.moveToNext(); 
         } 
        } 
       } catch (Exception ex) { 

       } finally { 
        if (cursor != null) { 
         cursor.close(); 
        } 
       }  

    } 

public class genericSongClass { 
     String songTitle = ""; 
     String songArtist = ""; 
     String songData = ""; 
     String isChecked = "false"; 
} 
+1

Votre code affichera tous les fichiers musicaux quel que soit leur format. Comment obtenir seulement les fichiers .mp3? –

Questions connexes