Как получить миниатюры аудиофайлов с помощью MediaStore

Сейчас я работаю над простым музыкальным проигрывателем, и мне нужно получить эскизы всех аудиофайлов.

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));
    }

как я могу получить это? Заранее спасибо.


person Alex Chengalan    schedule 01.04.2013    source источник
comment
Возможный дубликат Как я могу отобразить альбом Искусство с использованием MediaStore.Audio.Albums.ALBUM_ART?   -  person Yoav Feuerstein    schedule 06.12.2018
comment
@YoavFeuerstein Я ценю, что вы нашли лучший ответ на вопрос. Но этот вопрос задан до того, как вы предложили. Проверьте запрошенную дату.   -  person Alex Chengalan    schedule 07.12.2018


Ответы (2)


Возможно, вы захотите взглянуть на этот ответ, который я дал по аналогичной проблеме. . Вам нужно будет предоставить Uri песни, чтобы получить обложку.

person phxhawke    schedule 09.06.2013
comment
он спросил о MediaStore, а не MediaMetadataRetriever - person user924; 17.09.2017
comment
@ user924 MediaMetadataRetriever — это то, как вы получаете доступ к обложке альбома. - person phxhawke; 28.09.2018
comment
MediaMetadataRetriever используется для получения изображения непосредственно из аудиофайла (.mp3), который работает медленно. Android делает это за нас периодически, поэтому у него есть библиотека Mediastore, из которой мы можем получить информацию и, я полагаю, миниатюры аудиофайлов. Я имею в виду, что автор не задал общий вопрос о том, как получить миниатюру, он спросил, как получить ее с помощью MediaStore. - person user924; 28.09.2018

Согласно документации , должен быть:

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

Это может сработать для вас. (Хотя он вылетает с NoSuchMethodError в Marshmellow).

person kai klimscha    schedule 20.04.2020