2012-04-30 2 views
1

Я пытаюсь включить Album Art из mp3-файла в свое приложение, но он говорит: Не удалось вызвать getEmbeddedPicture.Показать альбом Art в Android Music App

В моем классе песни я поставил обложку каждой песни:

metaDataRetriver = new MediaMetadataRetriever(); 
metaDataRetriver.setDataSource(path); 
//path = /mnt/sdcard/chan_mp3/Titel.mp3 
byte[] artwork = metaDataRetriver.getEmbeddedPicture(); 

В моей CustomAdapter я пытаюсь отобразить обложки:

// This code works perfectly fine: for each song I get artist and title 
textView.setText(values.get(position).getArtist() + " - " + values.get(position).getTitle()); 

// This code doesn't work at all 
byte[] artwork = values.get(position).getArtwork(); 
Bitmap bMap = BitmapFactory.decodeByteArray(artwork, 0, artwork.length); 
imageView.setImageBitmap(bMap); 

Вопрос, где я что-то отсутствует? переменная обложки не правильно инициализирована или неверна моя просьба?

Или есть лучший подход, чтобы получить обложку альбома и информацию о музыке?

ответ

2

я нашел еще один способ сделать это ... Я спасу каждый ALBUMID для каждой песни, а затем я могу принести обложку со следующим кодом:

  Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart"); 
      Uri uri = ContentUris.withAppendedId(sArtworkUri, Integer.valueOf(albumId)); 
      ContentResolver res = context.getContentResolver(); 
      InputStream in; 
      try { 
       in = res.openInputStream(uri); 
       artwork = BitmapFactory.decodeStream(in); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } 
+0

ли не сделать список очень лага ? Как вы улучшаете производительность? – h4ck3d

+0

вы можете указать источник –

+0

Вы должны сделать выборку работ в AsyncTask –

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