0

Voici mon curseur par lequel je ne suis pas obtenir des chansons de stockage local:art album pour la chanson ne montre pas correct dans Android

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

Je suis afficher l'album en utilisant un autre curseur comme celui-ci illustré ci-dessous parce que je ne suis pas capable de le faire en utilisant même curseur:

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

Je suis affichant album comme ça, mais il ne présente pas correctement:

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); 
    } 

Et cursorPosition est la variable de type int qui donne la position du curseur de cursor que j'utilise pour obtenir la chanson du stockage local.

Répondre

0

Vous pouvez utiliser cette méthode pour obtenir des pochettes d'album de chansons:

`

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

Votre solution est correcte @ nipun.birla. Merci. – Pedo

+0

De rien! :) Apprécierais si vous pouvez marquer la réponse aussi utile .. (^ flèche) –