android 完美获取音乐文件中的专辑图片并显示

其实实现音乐中的专辑图像提取是相当的容易的,网上大多的资料都是比较扯淡的,其实就几行代码而已。

看下面代码之前,我们所要做的工作是通过mediaplayer已经获取到了音乐文件中的诸多信息:

 MediaStore.Audio.Media.TITLE,// 标题

 MediaStore.Audio.Media.DURATION,// 持续时间
 MediaStore.Audio.Media.ARTIST,// 艺术家
 MediaStore.Audio.Media._ID,// id
 MediaStore.Audio.Media.DISPLAY_NAME,// 显示名称
 MediaStore.Audio.Media.DATA,// 数据
 MediaStore.Audio.Media.ALBUM_ID,// 专辑名称ID
 MediaStore.Audio.Media.ALBUM,// 专辑

 MediaStore.Audio.Media.SIZE }, null, null, MediaStore.Audio.Media.ARTIST);// 大小,

其中我们需要的是MediaStore.Audio.Media.ALBUM_ID(即一下代码中的int id)

private void getImage(int id)
{
int album_id = id;  
String albumArt = getAlbumArt(album_id); 
Bitmap bm = null; 
if (albumArt == null) 
{
mImageView.setBackgroundResource(R.drawable.noalbum);  
}
else 

bm = BitmapFactory.decodeFile(albumArt); 
BitmapDrawable bmpDraw = new BitmapDrawable(bm); 
((ImageView) mImageView).setImageDrawable(bmpDraw); 

}

private String getAlbumArt(int album_id) 

{  
String mUriAlbums = "content://media/external/audio/albums";  
String[] projection = new String[] { "album_art" };  
Cursor cur = this.getContentResolver().query(  Uri.parse(mUriAlbums + "/" + Integer.toString(album_id)),  projection, null, null, null); 
String album_art = null; 
if (cur.getCount() > 0 && cur.getColumnCount() > 0) 
{  cur.moveToNext(); 
album_art = cur.getString(0); 

cur.close(); 
cur = null; 
return album_art; 
}

你可能感兴趣的:(Android)