0

Вот мой курсор, с помощью которого я получаю песни из локального хранилища:обложки альбома для песни не отображается правильно андроид

cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,MediaStore.Audio.AudioColumns.DURATION+">0", null, sortOrder); 

я м отображающего альбом, используя другой курсор, как это показано ниже, потому что я не м в состоянии сделать это, используя тот же курсор:

ContentResolver musicResolve = getContentResolver(); 
Uri smusicUri = android.provider.MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI;  
Cursor musicCursorTogetAlbum =musicResolve.query(smusicUri,null, null, null, null); 

я м показывая альбом, как это, но он не отображается правильно:

musicCursorTogetAlbum.moveToFirst(); 
    musicCursorTogetAlbum.move(cursorPosition); 

    int x = musicCursorTogetAlbum.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART); 
    int id_albumCursor = musicCursorTogetAlbum.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID); 

    String thisArt = musicCursorTogetAlbum.getString(x); 

    Bitmap bm = BitmapFactory.decodeFile(thisArt); 
    Bitmap bm_temp = BitmapFactory.decodeFile(thisArt); 

    Drawable dr = new BitmapDrawable(getResources(), bm); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
     iv_album_art.setImageBitmap(bm); 
    } 

И cursorPosition - это переменная типа int, которая дает позицию курсора cursor, которую я использую для получения песни из локального хранилища.

ответ

0

Вы можете использовать этот метод, чтобы получить обложки альбомов песен:

`

public static Bitmap getAlbumart(Context context, Long album_id){ 
    Bitmap bm = null; 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    try{ 
      final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart"); 
      Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id); 
      ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r"); 
      if (pfd != null){ 
       FileDescriptor fd = pfd.getFileDescriptor(); 
       bm = BitmapFactory.decodeFileDescriptor(fd, null, options); 
       pfd = null; 
       fd = null; 
      } 
     } catch(Error ee){} 
     catch (Exception e) {} 
     return bm; 
    } 

`

+0

Ваше решение является правильным @ nipun.birla. Благодарю. – Pedo

+0

Добро пожаловать! :) Был бы признателен, если бы вы могли отметить ответ как полезный, а также .. (^ стрелка) –

Смежные вопросы