2015-11-03 63 views

回答

3
private void musics(){ 
    Uri uri = MediaStore.Audio.Media.INTERNAL_CONTENT_URI; 
    ContentResolver cr = getContentResolver(); 
    String[] columns = {MediaStore.Audio.Media.DISPLAY_NAME};//add which column you need here 

    Cursor cursor = cr.query(uri, columns, null, null, null); 

    if(cursor == null){ 
     return; 
    } 
    if(cursor.getCount() > 0){ 
     cursor.moveToFirst(); 
     do{ 
      //read your information here 
      String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)); 

     }while(cursor.moveToNext()); 
    } 

    cursor.close(); 
} 
+0

完美。這是我需要的。非常感謝。 – Shaheera

1

這是我如何做它定製了我的情況之一:

public class MusicActivity extends FragmentActivity { 
    ListView musiclist; 
    Cursor musiccursor; 
    int music_column_index; 
    int count; 
    MediaPlayer mMediaPlayer; 



    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     init_phone_music_grid(); 
    } 

    private void init_phone_music_grid() { 
     System.gc(); 
     String[] proj = { MediaStore.Audio.Media._ID, 
       MediaStore.Audio.Media.DATA, 
       MediaStore.Audio.Media.DISPLAY_NAME, 
       MediaStore.Video.Media.SIZE }; 
     musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
       proj, null, null, null); 
     count = musiccursor.getCount(); 
     musiclist = (ListView)findViewById(R.id.sample); 
     musiclist.setAdapter(new MusicAdapter(getApplicationContext())); 

     musiclist.setOnItemClickListener(musicgridlistener); 
     mMediaPlayer = new MediaPlayer(); 
    } 

    private OnItemClickListener musicgridlistener = new OnItemClickListener() { 
     public void onItemClick(AdapterView parent, View v, int position, 
           long id) { 
      System.gc(); 
      music_column_index = musiccursor 
        .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA); 
      musiccursor.moveToPosition(position); 
      String filepath = musiccursor.getString(music_column_index); 

      finish(); 


      try { 
       if (mMediaPlayer.isPlaying()) { 
        mMediaPlayer.reset(); 
       } 
       mMediaPlayer.setDataSource(filepath); 
       mMediaPlayer.prepare(); 
       mMediaPlayer.start(); 
      } catch (Exception e) { 

      } 
     } 
    }; 

    public class MusicAdapter extends BaseAdapter { 
     private Context mContext; 

     public MusicAdapter(Context c) { 
      mContext = c; 
     } 

     public int getCount() { 
      return count; 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      System.gc(); 
      TextView tv = new TextView(mContext.getApplicationContext()); 
      String id = null; 
      if (convertView == null) { 
       music_column_index = musiccursor 
         .getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME); 
       musiccursor.moveToPosition(position); 
       id = musiccursor.getString(music_column_index); 
       music_column_index = musiccursor 
         .getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE); 
       musiccursor.moveToPosition(position); 
       //id += " Size(KB):" + musiccursor.getString(music_column_index); 
       tv.setText(id); 
      } else 
       tv = (TextView) convertView; 
      return tv; 
     } 
    } 
} 
+0

一個問題,如果我想獲得所有關於藝術家的信息是什麼? – Shaheera

+0

好吧,我想它在這裏可用:http://developer.android.com/reference/android/provider/MediaStore.html,使用CTRL + F,搜索你在找什麼,似乎是一個大頁面:D; ) – OBX