Как показать обложку альбома, название песни, продолжительность и имя исполнителя в ListView

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

Мне удалось показать все песни в списке, но не удалось отобразить обложки альбомов и т. д.

так может ли кто-нибудь мне в этом помочь ??

заранее спасибо


person Ayush Katoch    schedule 02.05.2015    source источник


Ответы (2)


Вы можете использовать для этого контент-провайдера.

Надеюсь, этот код поможет вам начать работу.

final Cursor mCursor = getContentResolver().query(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Audio.Media.DISPLAY_NAME,
                        MediaStore.Audio.Media.DATA,
                        MediaStore.Audio.Media.ARTIST,
                        MediaStore.Audio.Media.ALBUM_ID }, null, null,
                "LOWER(" + MediaStore.Audio.Media.TITLE + ") ASC");

        int count = mCursor.getCount();

        String[] songs = new String[count];

        if (mCursor.moveToFirst()) {
            do {
                String songname = mCursor
                        .getString(mCursor
                                .getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
                String sonpath = mCursor.getString(mCursor
                        .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
                String artistname = mCursor.getString(mCursor
                        .getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
                String albumid = mCursor
                        .getString(mCursor
                                .getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
    } while (mCursor.moveToNext());
            Constant.sdCardmusic = allsongs;
        }

        mCursor.close();
 }

Если вы хотите получить изображение альбома, вы можете передать идентификатор альбома, полученный из приведенного выше кода, в метод ниже:

private Bitmap getArtistImage(String albumid) {
        Bitmap artwork = null;
        try {
            Uri sArtworkUri = Uri
                    .parse("content://media/external/audio/albumart");
            Uri uri = ContentUris.withAppendedId(sArtworkUri,
                    Long.valueOf(albumid));
            ContentResolver res = mContext.getContentResolver();
            InputStream in = res.openInputStream(uri);
            artwork = BitmapFactory.decodeStream(in);

        } catch (Exception e) {
            Log.e("Exception", e.toString());
        }
        return artwork;
    }
person Jay Shah    schedule 02.05.2015
comment
есть ли полный рабочий пример, который можно использовать для изучения - person 1234567; 30.06.2015

У Google есть отличный пример музыкального проигрывателя для телефона, Chromecast и AUTO на Github https://github.com/googlesamples/android-UniversalMusicPlayer

person CkurtM    schedule 17.09.2015