Android相册缩略图问题:resolveUri在错误的位图uri上失败



我试图显示专辑列表(存储在sd卡上的音乐mp3)以及每个专辑的专辑艺术。专辑封面存储在mp3标签中(它不是SD卡上的单独图像)

我可以使用:

获取专辑详细信息
String[] projection = new String[] { Albums._ID, Albums.ALBUM, Albums.ARTIST, Albums.ALBUM_ART, Albums.NUMBER_OF_SONGS };
        String rowsToReturn = null;
        String[] selectionWhere = null;
        String sortOrder = Media.ALBUM + " ASC";
        Cursor cursor = contentResolver.query(Albums.EXTERNAL_CONTENT_URI, projection, rowsToReturn, selectionWhere, sortOrder);
        String albumArtUri = cursor.getString(cursor.getColumnIndex(Albums.ALBUM_ART));

URI是正确的,但是当我尝试将URI设置为ImageView的src时,我得到一个无声的错误被抛出"resolveUri在坏的位图URI上失败"。

imageview.setImageURI(Uri.parse(albumArtUri));

这只发生在某些专辑中。有些很好,可以正确地显示专辑封面。我查看了URI路径,并检查了SD卡上的缩略图图像,发现它们在这里:/mnt/sdcard/Android/data/com.android.providers.media/albumthumbs/

我发现图像工作和图像不,所以图像确实存在,但只是不能正确读取。我甚至试着从sd卡上复制图像,并在文件中添加。png扩展名-那些显示在手机上工作的,但那些没有"损坏"的

最后我把mp3文件本身复制回电脑,并检查了嵌入标签的专辑封面,它们都显示正确。

这几乎就像Android系统从标签中创建的缩略图是无效的或损坏的,但这是不可能的。

或者我需要用不同的方式来解读它们?

我认为问题可能与媒体扫描有关。删除缓存文件夹并打开音乐播放器应用程序。它将再次为所有歌曲创建专辑缓存。

最新更新