【发布时间】:2021-06-21 16:05:40
【问题描述】:
一段时间以来,我一直在尝试解决专辑封面问题,但目前还没有成功。
自 API 29 起,专辑插图 MediaStore 字段已被弃用 (docs)。
根据文档页面上的建议,我现在应该使用 loadThumbnail 方法,我一直在尝试这样做。不幸的是,我无法使用 loadThumbnail 函数来加载专辑插图,我只看到它适用于来自 “MediaStore.Images.Media.EXTERNAL_CONTENT_URI”,它似乎不包含所有专辑,也没有使用 ID 映射到它们的方法。
这是我目前的尝试,似乎还没有奏效。有没有人使用新的 loadThumbnail 方法成功加载专辑封面?我正在使用 Google Pixel 3a 进行测试。
获取光标:
return mContext.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
{
MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TRACK,
MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.YEAR,
MediaStore.Audio.Media.COMPOSER, MediaStore.Audio.Albums.ALBUM_ID
},
MediaStore.Audio.Media._ID + "=?",
new String[]{String.valueOf(id)},
null);
提取专辑ID:
cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Albums.ALBUM_ID)),
构建 uri 以加载缩略图:
Uri contentUri = ContentUris.withAppendedId(
MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
// MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
albumId
);
return resolver.loadThumbnail(contentUri, new Size(640, 480), null);
提供的错误:
java.io.FileNotFoundException: No media for album content://media/external/audio/albums/1145137507
【问题讨论】:
-
检查这个答案它会起作用.. stackoverflow.com/questions/58030463/…
标签: android