繁体   English   中英

歌曲的专辑封面在android中显示不正确

[英]Album art for song is not showing correct in android

这是我从本地存储中获取歌曲的光标:

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位置。

您可以使用此方法获取歌曲的专辑封面:

`

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

`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM