2014-05-21 2 views
0

Je veux obtenir la liste de toutes les chansons qui sont ajoutées dans le lecteur multimédia dans Android. Si je n'ai pas de chemin d'accès où tous les fichiers musicaux sont stockés, alors comment puis-je récupérer la liste des chansons?Comment lister les fichiers audio de Media Player, puis les lire dans Android

Y at-il un moyen d'obtenir le chemin où les chansons sont stockées sans prendre le chemin de l'utilisateur?

MIS À JOUR - >> J'ai la liste. maintenant je veux jouer la chanson choisie d'une autre activité quand je passe juste le nom de chanson. est-ce possible? et comment??

Aidez-nous s'il vous plaît. Merci

Répondre

0

essayer ci-dessous pour obtenir le code mp3 de sdcard: -

final String MEDIA_PATH = Environment.getExternalStorageDirectory() 
     .getPath() + "/"; 
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>(); 
private String mp3Pattern = ".mp3"; 

// Constructor 
public SongsManager() { 

} 

/** 
* Function to read all mp3 files and store the details in 
* ArrayList 
* */ 
public ArrayList<HashMap<String, String>> getPlayList() { 
    System.out.println(MEDIA_PATH); 
    if (MEDIA_PATH != null) { 
     File home = new File(MEDIA_PATH); 
     File[] listFiles = home.listFiles(); 
     if (listFiles != null && listFiles.length > 0) { 
      for (File file : listFiles) { 
       System.out.println(file.getAbsolutePath()); 
       if (file.isDirectory()) { 
        scanDirectory(file); 
       } else { 
        addSongToList(file); 
       } 
      } 
     } 
    } 
    // return songs list array 
    return songsList; 
} 

private void scanDirectory(File directory) { 
    if (directory != null) { 
     File[] listFiles = directory.listFiles(); 
     if (listFiles != null && listFiles.length > 0) { 
      for (File file : listFiles) { 
       if (file.isDirectory()) { 
        scanDirectory(file); 
       } else { 
        addSongToList(file); 
       } 

      } 
     } 
    } 
} 

private void addSongToList(File song) { 
    if (song.getName().endsWith(mp3Pattern)) { 
     HashMap<String, String> songMap = new HashMap<String, String>(); 
     songMap.put("songTitle", 
       song.getName().substring(0, (song.getName().length() - 4))); 
     songMap.put("songPath", song.getPath()); 

     // Adding each song to SongList 
     songsList.add(songMap); 
    } 
} 

ou

final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    final String[] cursor_cols = { 
      MediaStore.Audio.Media._ID, 
      MediaStore.Audio.Media.ARTIST, 
      MediaStore.Audio.Media.ALBUM, 
      MediaStore.Audio.Media.TITLE, 
    }; 
    final String where = MediaStore.Audio.Media.IS_MUSIC + "=1"; 
    final Cursor cursor = getContentResolver().query(uri, cursor_cols, where, null, null); 
    cursor.moveToNext(); 
    final String artist = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)); 
    final String album = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM)); 
    final String track = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)); 
    doSomethingHere(artist, album, track); 
+0

Thank you !! la méthode uri a fonctionné !!! – Aradhna