使用Glide Library加载音频/音乐文件

时间:2017-11-11 11:29:58

标签: java android audio android-glide

我想加载设备内部存储中存在的音频/音乐文件的封面。

我只有文件的路径

这是我到现在为止所尝试的 -

我已经提到了显示解决方案的Issue

但我不知道如何准确地创建一个新模块,因为我可以在线收集的信息是我们必须首先注册模块然后使用它们

任何能指导我如何注册模块然后加载封面艺术的人都会非常有帮助。

此外,我尝试过以正常方式加载封面艺术,但它没有加载封面艺术。

GlideApp
    .with(myFragment)
    .load(url)
    .centerCrop()
    .placeholder(R.drawable.loading_spinner)
    .into(myImageView);

1 个答案:

答案 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();
        }
    }