2012-04-18 76 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)); 
     }