2016-04-24 114 views
0

我試圖從一個特定的藝術家的歌曲,我不知道我會如何做到這一點。藝術家將根據用戶輸入而改變,所以不應該被硬編碼。目前,我使用的是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在光標的選擇,但它仍然無法正常工作。任何解決方案謝謝。

回答

1

查詢到所選擇的藝術家的所有歌曲,你可以使用此代碼:

String selection = MediaStore.Audio.Media.ARTIST + "=?"; 
String[] selectionArgs = {artistName}; 

Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, selection, selectionArgs, null); 
相關問題