我正在尝试构建一个MP3播放器,我希望
ImageView能够显示各个歌曲的专辑封面.我尝试了以下,但它不起作用.
albumcover = (ImageView) findViewById(R.id.cover); String coverPath = songsList.get(songIndex).get(MediaStore.Audio.Albums.ALBUM_ART); Drawable img = Drawable.createFromPath(coverPath); albumcover.setImageDrawable(img);
当我尝试播放歌曲时,我得到的只是ImageView中的空白屏幕.
解决方法
这是我如何获得一首歌的专辑封面:
Cursor cursor = getContentResolver().query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,new String[] {MediaStore.Audio.Albums._ID,MediaStore.Audio.Albums.ALBUM_ART},MediaStore.Audio.Albums._ID+ "=?",new String[] {String.valueOf(albumId)},null); if (cursor.moveToFirst()) { String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART)); // do whatever you need to do }
albumId指的是该歌曲的MediaStore.Audio.Media.ALBUM_ID.
如果您正在寻找特定歌曲的专辑封面(而不是专辑列表),据我所知,这是一个两阶段的过程,因为ALBUM_ART是MediaStore.Audio.Albums的属性,不能直接使用作为歌曲元数据.