我想加载设备内部存储中存在的音频/音乐文件的封面。
我只有文件的路径。
这是我到现在为止所尝试的 -
我已经提到了显示解决方案的Issue。
但我不知道如何准确地创建一个新模块,因为我可以在线收集的信息是我们必须首先注册模块然后使用它们
任何能指导我如何注册模块然后加载封面艺术的人都会非常有帮助。
此外,我尝试过以正常方式加载封面艺术,但它没有加载封面艺术。
GlideApp
.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
答案 0 :(得分:2)
如果这是您所拥有的路径:
/storage/emulated/0/Download/mysong.mp3
然后你可以使用以下功能:
public void getAudioAlbumImageContentUri(Context context, String filePath) {
Uri audioUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Audio.Media.DATA + "=? ";
String[] projection = new String[] { MediaStore.Audio.Media._ID , MediaStore.Audio.Media.ALBUM_ID};
Cursor cursor = context.getContentResolver().query(
audioUri,
projection,
selection,
new String[] { filePath }, null);
if (cursor != null && cursor.moveToFirst()) {
long albumId = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Uri imgUri = ContentUris.withAppendedId(sArtworkUri,
albumId);
Log.d(TAG,"AudioCoverImgUri = "+ imgUri.toString());
Glide.with(this)
.load(imgUri)
.into(((ImageView)findViewById(R.id.button)));
cursor.close();
}
}