Я собираю проигрыватель песен. Проблема заключается в том, что ImageView для обложек альбомов не обновляется для песен. Когда я играю первую песню, ImageView настроен правильно. Однако при воспроизведении следующих песен ImageView вообще не обновляется. Даже когда я играю одну и ту же песню за другой. Вот мой код:
ImageView album_art
и MediaPlayer mp
объявлены в классе MusicPlayer до onCreate()
.
onCreate ():
protected void onCreate(Bundle savedInstanceState)
{
//other stuff
album_art = findViewById(R.id.album_art);
playSong(); //this method handles the song player
}
playSong ():
public void playSong()
{
//other stuff like initializing mp
Bitmap art = getArt();
Bitmap resized = Bitmap.createScaledBitmap(art, 125, 125, true);
album_art.setImageBitmap(resized);
nextSong(); //sets onCompleteListener
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
nextSong ()
public void nextSong()
{
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
//set next song
album_art.setImageDrawable(null);
}
});
}
То, что я пробовал до сих пор:
- Инициализация
album_art
в playSong()
и установка значения null в nextSong()
. - Установка изображения без изменения размера в
playSong()
- Проверил журналы и убедился, что функция
getArt()
работает идеально.
Ничто из этого не могло установить ImageView с правильным изображением после первой песни.