J'essaie de comprendre une requête MediaStore
qui va chercher toutes les chansons membres d'un Playlist
. Cependant, le List
retourne toujours vide sans résultat (même après avoir notifié l'adaptateur). Voici ce que im en train de faire ...La requête pour afficher les listes de lecture revient vide?
Obtenir Chansons Playlist Méthode
ContentResolver musicResolver = getActivity().getContentResolver();
Uri musicUri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID);
Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int idColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.AUDIO_ID);
int titleColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.TITLE);
int artistColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.ARTIST);
int albumColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.ALBUM);
int pathColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Playlists.Members.DATA);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
String thisAlbum = musicCursor.getString(albumColumn);
String thisPath = musicCursor.getString(pathColumn);
songList.add(new Song(thisId, thisTitle, thisArtist, thisAlbum, thisPath));
}
while (musicCursor.moveToNext());
}
musicCursor.close();
Et voici comment j'ajouter les valeurs dans la liste de lecture en utilisant son ID ...
Ajouter Playlist Méthode Songs
public static void addToPlaylist(ContentResolver resolver, long audioId, String title, String artist, String album, String path) {
String[] cols = new String[] {
"count(*)"
};
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID);
Cursor cur = resolver.query(uri, cols, null, null, null);
cur.moveToFirst();
cur.close();
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, audioId);
values.put(MediaStore.Audio.Playlists.Members.TITLE, title);
values.put(MediaStore.Audio.Playlists.Members.ARTIST, artist);
values.put(MediaStore.Audio.Playlists.Members.ALBUM, album);
values.put(MediaStore.Audio.Playlists.Members.DATA, path);
resolver.insert(uri, values);
}
Une suggestion? Merci!
Je ne comprends pas pourquoi quelqu'un a voté contre cela sans expliquer – Theo