如何使用MediaStore获取音频文件的缩略图

3
我现在正在开发一个简单的音乐播放器,需要获取所有音频文件的缩略图。
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";

    String[] projection = {
            MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.ARTIST,
            MediaStore.Audio.Media.TITLE,
            MediaStore.Audio.Media.DATA,
            MediaStore.Audio.Media.DISPLAY_NAME,
            MediaStore.Audio.Media.DURATION,
            MediaStore.Audio.Media.YEAR
    };
    cursor = getBaseContext().getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
            projection, selection, null, null);
    while(cursor.moveToNext()) {

        name.add(cursor.getString(4));
        path.add(cursor.getString(3));
        duration.add(cursor.getString(5));
    }

我该如何获取它?提前感谢。


可能是如何使用MediaStore.Audio.Albums.ALBUM_ART显示专辑封面?的重复问题。 - Yoav Feuerstein
@YoavFeuerstein,感谢您找到了一个更好的答案。但是这个问题在您建议的那个问题之前就已经被问过了。请检查提问日期。 - Alex Chengalan
2个回答

1

您可能想查看我在类似问题上提供的答案。您需要提供歌曲的Uri才能获取封面艺术品。


他问到的是 MediaStore,而不是 MediaMetadataRetriever - user924
@user924 MediaMetadataRetriever 是访问专辑封面的方式。 - phxhawke
2
MediaMetadataRetriever 用于直接从音频文件(.mp3)中获取图片,但速度较慢。安卓会定期为我们完成这个过程,因此它有一个名为 MediaStore 的库,我们可以从中获取音频文件的信息和缩略图。我的意思是,作者并没有询问如何获取缩略图的一般问题,而是询问如何使用 MediaStore 获取它。 - user924

0

根据文档,应该是这样的:

Bitmap image = ThumbnailUtils.createAudioThumbnail("your file name", MediaStore.Images.Thumbnails.MICRO_KIND);

这个可能适用于你。 (尽管在Marshmellow中会崩溃并显示NoSuchMethodError错误)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接