0

我正在製作音樂應用程序。到目前爲止,一切都很順利。我想顯示專輯封面以及播放的歌曲。但我無法弄清楚這樣做的方法。如何在我的音樂播放器(Android)中顯示專輯封面?

+0

可以使用的圖像加載庫等[通用圖像裝載機(https://github.com/nostra13/Android-Universal-Image-Loader)或[滑翔](https://github.com/bumptech/glide)。傳遞專輯封面的URI並將其加載到ImageView。它應該輕鬆加載專輯封面。 – KudzieChase

回答

0

您可以使用下面的函數(API> 10)

Bitmap getEmbeddedPicture(String songPath){ 
    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) 
     { 
      return BitmapFactory.decodeByteArray(data, 0, data.length); 

     } 
     else 
      return null; 
} 
1

你可以得到所有使用MediaMetaDataRetriever類的媒體文件的元數據。

代碼如下:

@Override 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     getInit(); 

     // Ablum_art retrieval code // 

     metaRetriver = new MediaMetadataRetriever(); 
     metaRetriver.setDataSource("/sdcard/audio.mp3"); 
     try { 
      art = metaRetriver.getEmbeddedPicture(); 
      Bitmap songImage = BitmapFactory 
        .decodeByteArray(art, 0, art.length); 
      album_art.setImageBitmap(songImage); 
      album.setText(metaRetriver 
        .extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM)); 
      artist.setText(metaRetriver 
        .extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)); 
      genre.setText(metaRetriver 
        .extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE)); 
     } catch (Exception e) { 
      album_art.setBackgroundColor(Color.GRAY); 
      album.setText("Unknown Album"); 
      artist.setText("Unknown Artist"); 
      genre.setText("Unknown Genre"); 
     } 

    } 

    // Fetch Id's form xml 

    public void getInit() { 

     album_art = (ImageView) findViewById(R.id.album_art); 
     album = (TextView) findViewById(R.id.Album); 
     artist = (TextView) findViewById(R.id.artist_name); 
     genre = (TextView) findViewById(R.id.genre); 

    } 
} 
相關問題