【发布时间】:2015-12-15 09:38:59
【问题描述】:
我使用此代码获取 MediaStore 中的所有音乐,但不仅是音乐,我的列表包含设备中的所有音乐和应用程序的声音,如“facebook”或“skype”。如何避免?
public void getSongList(){
//query external audio
ContentResolver musicResolver = getContentResolver();
Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Toast.makeText(PlayListActivity.this, musicUri.getPath(), Toast.LENGTH_LONG).show();
Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);
//iterate over results if valid
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int titleColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.TITLE);
int idColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media._ID);
int artistColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.ARTIST);
int albumColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.ALBUM_ID);
//add songs to list
Bitmap bmThumbnail;
do {
String path = musicCursor.getString(musicCursor.getColumnIndex(MediaStore.Audio.Media.DATA));
long thisId = musicCursor.getLong(idColumn);
long thisAlbumId = musicCursor.getLong(albumColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
songList.add(new Song(thisId, thisAlbumId, thisTitle, thisArtist, path));
}
while (musicCursor.moveToNext());
}
}
【问题讨论】:
标签: android audio-player mpmusicplayercontroller audio android-music-player