Получение обложек альбомов для большого количества песен

Итак, я новичок в Android и на самом сайте. Я пытаюсь получить обложку альбома для своего музыкального проигрывателя.

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: Throwing OutOfMemoryError «Не удалось выделить 1000012 байтов с 331252 свободными байтами и 323 КБ до OOM»)

Может ли кто-нибудь сказать мне другой, лучший способ получить обложку альбома? (Пожалуйста, подтвердите свой ответ кодом, если это возможно).


person Aditya G.    schedule 17.12.2015    source источник
comment
stackoverflow.com/questions/12583419/   -  person koutuk    schedule 17.12.2015
comment
stackoverflow.com/questions/8586638/   -  person koutuk    schedule 17.12.2015