androidandroid-music-playeralbumart

Getting Album Art for music player Android


I want to know the code (Function) how to return an image of the albumart in a musicplayer. Can you explain what parameters I should pass? I can pass the file path to the function.

imported required libraries

public class SongsManager {
    // SDCard Path
    final String MEDIA_PATH = new String("/sdcard/");
    private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

    // Constructor
    public SongsManager(){

    }
    public ArrayList<HashMap<String, String>> getPlayList(){
        File home = new File(MEDIA_PATH);

        if (home.listFiles(new FileExtensionFilter()).length > 0) {
            for (File file : home.listFiles(new FileExtensionFilter())) {
                HashMap<String, String> song = new HashMap<String, String>();
                song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
                song.put("songPath", file.getPath());
                // Adding each song to SongList
                songsList.add(song);
            }
        }
        // return songs list array
        return songsList;
    }

    class FileExtensionFilter implements FilenameFilter {
        public boolean accept(File dir, String name) {
            return (name.endsWith(".mp3") || name.endsWith(".MP3"));
        }
    }
}

Solution

  • Try following:

    MediaMetadataRetriever mmr = new MediaMetadataRetriever();
    mmr.setDataSource(file.getPath());
    byte [] data = mmr.getEmbeddedPicture();
    Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
    imageView.setImageBitmap(bitmap);