я новичок в android разработке. У меня есть два списка музыкальных произведений, которые я могу получить и воспроизвести, поменяв иконку с воспроизведения на паузу или т. д. c но у меня есть серьезная проблема с моим предметом перед игрой. для решения этой проблемы я искал весь свой прошлый день и сегодня и читал множество кодов, чтобы найти наилучшее условие для изменения.
Основная проблема: когда я нажимаю на первую в play_btn, моя музыка c запускается играть. все нормально. когда я нажимаю на play_btn, играя musi c, он меняет значок на паузу, и его musi c останавливается; , когда я нажимаю на следующий ряд переработчика. Моя прошлая иконка btn_play не меняется.
viewHolder.btn_play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (oldPosition == -1) {
if (!isMediaPlayerPlaying) {
mediaPlayer = new MediaPlayer();
switch (listName) {
case "sabah": {
mediaPlayer = MediaPlayer.create(G.app, sabahMusics.get(position));
break;
}
case "masae": {
mediaPlayer = MediaPlayer.create(G.app, masaeMusics.get(position));
break;
}
}
Log.i("hdev", "boolean is: " + isMediaPlayerPlaying);
mediaPlayer.start();
isMediaPlayerPlaying = !isMediaPlayerPlaying;
oldPosition = position;
} else {
mediaPlayer.pause();
isMediaPlayerPlaying = !isMediaPlayerPlaying;
}
}
if (oldPosition != position) {
}
if (mediaPlayer.isPlaying()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
viewHolder.btn_play.setBackground(G.app.getDrawable(R.drawable.pause));
}
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
viewHolder.btn_play.setBackground(G.app.getDrawable(R.drawable.play));
}
}
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
Log.i("hdev", "Prepaired Prepaired Prepaired");
}
});
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
viewHolder.btn_play.setBackground(G.app.getDrawable(R.drawable.play));
}
}
});
}
});