Liste de toutes les musiques à MediaStore avec les Chemins
Ok, donc j'ai travaillé sur ce projet depuis quelques jours maintenant et la plupart de mon temps a été de travailler sur la façon de la liste de tous les de la musique sur un appareil dans une VUE de LISTE ou quelque chose d'autre, j'ai cherché pendant quelques jours maintenant, et c'est en train de me tuer. J'ai fait de si près à un point avec toute la musique dans un dossier montrant, cependant, comme la plupart des gens ont des sous dossiers pour des choses comme artiest et albums, j'ai besoin d'un moyen de recherche dans les sous-dossiers pour les fichiers Mp3 ou des fichiers de musique.
Voici ce que j'ai à ce jour pour la collection de Musique:
package com.androidhive.musicplayer;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.HashMap;
import android.provider.MediaStore;
public class SongsManager {
//SDCard Path
final String MEDIA_PATH = new String(MediaStore.Audio.Media.getContentUri("external").toString());
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
//Constructor
public SongsManager(){
}
/**
* Function to read all mp3 files from sdcard
* and store the details in ArrayList
* */
public ArrayList<HashMap<String, String>> getPlayList(){
File home = new File(MEDIA_PATH);
if (home.listFiles(new FileExtensionFilter()).length > 0) {
for (File file : home.listFiles(new FileExtensionFilter())) {
HashMap<String, String> song = new HashMap<String, String>();
song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
song.put("songPath", file.getPath());
//Adding each song to SongList
songsList.add(song);
}
}
//return songs list array
return songsList;
}
/**
* Class to filter files which are having .mp3 extension
* */
class FileExtensionFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".mp3") || name.endsWith(".MP3"));
}
}
}
Merci à tous ceux qui peuvent aider. 🙂
- Pourquoi ne pas avoir que la liste de la MediaStore?
- comment faire si j'ai essayé de stockage..
Vous devez vous connecter pour publier un commentaire.
Bien que le post est vieux, pour d'autres gens comme moi à l'idée de la création d'une liste de musique avec leur chemin d'accès au fichier, j'ai ajouté la solution ici.
MediaStore.Audio.Media.DATA
colonne contient en fait les médias chemin d'accès au fichier. Vous pouvez obtenir les informations nécessaires en utilisant le code suivant:Vous pouvez lister tous les fichiers de musique à l'aide de ce code
Je n'ai pas essayé ce code, mais il semble correct. Vous serez sur la bonne voie avec qui.
Je suis en train de travailler sur le même projet et déjà résolu le problème.
Vous aurez besoin d'une classe personnalisée pour stocker vos chansons de données:
Ensuite, vous devez définir la liste de tableaux d'activité, avec Affichage de la Liste qui vous permettra de remplir avec des données:
et dans onCreate:
Alors vous devez récupérer des données à partir de votre appareil:
Puis appeler cette méthode onCreate:
Et enfin, vous devez créer la coutume adaptateur de classe, de définir cet adaptateur dans onCreate (en activité avec ListView) et de définir cette carte sur votre ListView objet.
Je vois qu'il a été demandé il y a 3 ans et le problème, je pense que déjà résolu, mais il sera peut-être utile pour quelqu'un. Merci.
Ici est une fonction simple qui vous donne tous les fichiers audio en Fichier Objet.