2012-04-18 77 views
2

大家好, 在我的媒体播放器,我需要显示专辑封面(我不知道它是如何发音actually..I希望右)的歌曲。我知道我必须从歌曲本身中提取图像,但是怎么样?米想知道。所以任何帮助,如果可能的话与某种代码。谢谢。提取专辑封面在android系统

+0

重复://计算器.com/questions/1954434/cover-art-on-android – Rajesh 2012-04-18 12:46:06

回答

0
MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 
mmr.setDataSource(filePath); 

String albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM)); 

注意这将在API级别只工作10或以上

+2

你应该更好地评论代码,至少输入'Try this:' ,更好的地方链接MediaMetaDataRetriever参考... – nio 2013-11-24 11:48:13

+0

这不回答如何提取专辑封面(图片)的问题, – 2017-11-30 09:46:54

2

尝试FFmpegMediaMetadataRetriever

FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever(); 
retriever.setDataSource(uri); 
byte [] data = retriever.getEmbeddedPicture(); 

// convert the byte array to a bitmap 
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 
// do something with the image ... 
// mImageView.setImageBitmap(bitmap); 

retriever.release(); 
9

的API 10以上

HTTP的
android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 
     mmr.setDataSource(songsList.get(songIndex).get("songPath")); 

     byte [] data = mmr.getEmbeddedPicture(); 
       //coverart is an Imageview object 

     // convert the byte array to a bitmap 
     if(data != null) 
     { 
      Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 
      coverart.setImageBitmap(bitmap); //associated cover art in bitmap 
      coverart.setAdjustViewBounds(true); 
      coverart.setLayoutParams(new LinearLayout.LayoutParams(500, 500)); 
     } 
     else 
     { 
      coverart.setImageResource(R.drawable.fallback_cover); //any default cover resourse folder 
      coverart.setAdjustViewBounds(true); 
      coverart.setLayoutParams(new LinearLayout.LayoutParams(500,500)); 
     }