0

Я делаю музыкальное приложение. Пока все идет хорошо. Я хочу отобразить обложку альбома вместе с исполняемой песней. Но я не могу понять, как это сделать.Как показать обложку альбома в моем музыкальном проигрывателе (Android)?

+0

Вы можете использовать библиотеку загрузки изображений, например [Универсальный погрузчик Image] (https://github.com/nostra13/Android-Universal-Image-Loader) или [Glide ] (https://github.com/bumptech/glide). Перейдите в URI альбома Album и загрузите его в ImageView. Он должен легко загружать ваше обложку альбомов. – KudzieChase

ответ

0

вы можете использовать следующую функцию (ИЗА> 10)

Bitmap getEmbeddedPicture(String songPath){ 
    android.media.MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 
     mmr.setDataSource(songsList.get(songIndex).get("songPath")); 

     byte [] data = mmr.getEmbeddedPicture(); 
       //coverart is an Imageview object 

     // convert the byte array to a bitmap 
     if(data != null) 
     { 
      return BitmapFactory.decodeByteArray(data, 0, data.length); 

     } 
     else 
      return null; 
} 
0

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

В принципе, вам просто нужно ваше изображение (или все из них, а также их цикл и загрузка каждого изображения) и URI изображения.

Picasso.with(context) 
      .load(uri) 
      .into(imageView); 

Ссылка на интересный и простой учебник для Пикассо:

http://code.tutsplus.com/tutorials/android-sdk-working-with-picasso--cms-22149

1

Вы можете получить все метаданные из медиа-файла с использованием MediaMetaDataRetriever класса.

код выглядит следующим образом:

@Override 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     getInit(); 

     // Ablum_art retrieval code // 

     metaRetriver = new MediaMetadataRetriever(); 
     metaRetriver.setDataSource("/sdcard/audio.mp3"); 
     try { 
      art = metaRetriver.getEmbeddedPicture(); 
      Bitmap songImage = BitmapFactory 
        .decodeByteArray(art, 0, art.length); 
      album_art.setImageBitmap(songImage); 
      album.setText(metaRetriver 
        .extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM)); 
      artist.setText(metaRetriver 
        .extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)); 
      genre.setText(metaRetriver 
        .extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE)); 
     } catch (Exception e) { 
      album_art.setBackgroundColor(Color.GRAY); 
      album.setText("Unknown Album"); 
      artist.setText("Unknown Artist"); 
      genre.setText("Unknown Genre"); 
     } 

    } 

    // Fetch Id's form xml 

    public void getInit() { 

     album_art = (ImageView) findViewById(R.id.album_art); 
     album = (TextView) findViewById(R.id.Album); 
     artist = (TextView) findViewById(R.id.artist_name); 
     genre = (TextView) findViewById(R.id.genre); 

    } 
} 
Смежные вопросы