Android 检索大量歌曲的唱片集艺术
好的,所以我是一个使用android的新手,也是一个网站本身的新手。 我正在尝试为我的音乐播放器检索专辑艺术Android 检索大量歌曲的唱片集艺术,android,audio-player,android-music-player,Android,Audio Player,Android Music Player,好的,所以我是一个使用android的新手,也是一个网站本身的新手。 我正在尝试为我的音乐播放器检索专辑艺术 public void getSonglist(){ Songs song; ContentResolver songResolver = getContentResolver(); Uri songUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; Uri artUri; Cursor songC
public void getSonglist(){
Songs song;
ContentResolver songResolver = getContentResolver();
Uri songUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Uri artUri;
Cursor songCursor = songResolver.query(songUri, null, null, null, null);
final Uri ART_CONTENT_URI = Uri.parse("content://media/external/audio/albumart");
if(songCursor.moveToFirst()){
do{ song = new Songs("","",0);
albumID = songCursor.getLong(songCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
song.setTitle(songCursor.getString(songCursor.getColumnIndex(MediaStore.Audio.Media.TITLE)));
song.setArtist(songCursor.getString(songCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)));
song.set_Id(songCursor.getLong(songCursor.getColumnIndex(MediaStore.Audio.Media._ID)));
artUri = ContentUris.withAppendedId(ART_CONTENT_URI, albumID);
AlbumArt = null;
try {
AlbumArt = (MediaStore.Images.Media.getBitmap(getContentResolver(), artUri));
} catch (Exception exception) {
// log error
}
song.setAlbumArt(AlbumArt);
songlist.add(song);
}while(songCursor.moveToNext());
}
}
这里的问题是,虽然代码没有错误,但我的设备上有大量歌曲(大约900首),并且在尝试加载相册艺术时,应用程序内存不足。(E/art:抛出OutOfMemoryError“未能分配1000012字节的分配,其中包含331252个可用字节和323KB,直到OOM为止”)
有人能告诉我另一种更好的方式来获得专辑艺术吗?
(如果可能,请用代码支持您的答案)