如何从特定艺术家那里获取歌曲?
How to get songs from a particular artist?
我正在尝试从特定艺术家那里获取歌曲,但我不知道该怎么做。艺术家将根据用户输入而改变,因此不应进行硬编码。目前,我正在使用 MediaStore
查询设备中的所有歌曲,但我不知道如何才能让它只从选定的艺术家那里获取歌曲。
这是代码...
public void displayArtistSongs(String artistName) {
//retrieve song info
ContentResolver musicResolver = getActivity().getContentResolver();
Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = musicResolver.query(musicUri, null, artistName, null, null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int idColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Media._ID);
int titleColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Media.TITLE);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
songList.add(new Song(thisId, thisTitle, null, null, null));
}
while (musicCursor.moveToNext());
}
musicCursor.close();
}
我尝试传递 artistName
,以及之前传递 artistId
作为光标中的选择,但它仍然不起作用。任何解决方案?谢谢
要查询所选艺术家的所有歌曲,您可以使用此代码:
String selection = MediaStore.Audio.Media.ARTIST + "=?";
String[] selectionArgs = {artistName};
Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, selection, selectionArgs, null);
我正在尝试从特定艺术家那里获取歌曲,但我不知道该怎么做。艺术家将根据用户输入而改变,因此不应进行硬编码。目前,我正在使用 MediaStore
查询设备中的所有歌曲,但我不知道如何才能让它只从选定的艺术家那里获取歌曲。
这是代码...
public void displayArtistSongs(String artistName) {
//retrieve song info
ContentResolver musicResolver = getActivity().getContentResolver();
Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = musicResolver.query(musicUri, null, artistName, null, null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int idColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Media._ID);
int titleColumn = musicCursor.getColumnIndex
(MediaStore.Audio.Media.TITLE);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
songList.add(new Song(thisId, thisTitle, null, null, null));
}
while (musicCursor.moveToNext());
}
musicCursor.close();
}
我尝试传递 artistName
,以及之前传递 artistId
作为光标中的选择,但它仍然不起作用。任何解决方案?谢谢
要查询所选艺术家的所有歌曲,您可以使用此代码:
String selection = MediaStore.Audio.Media.ARTIST + "=?";
String[] selectionArgs = {artistName};
Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, selection, selectionArgs, null);