Я пытаюсь разработать простое приложение musi c. Я борюсь с методом случайного воспроизведения, поскольку текущая воспроизводимая песня дублируется, когда я нажимаю кнопку перемешивания. Есть ли способ предотвратить его дублирование? Я не планирую использовать более простые способы использования списков массивов и метода Collections.shuffle
.
private void prepareSongs()
{
Song theWayYouLookTonight = new Song("S1001", "The Way You Look Tonight","Michael Buble","a5b8972e764025020625bbf9c1c2bbb06e394a60?cid=null",4.39,"michael_buble_collection");
Song billieJean = new Song("S1002","Billie Jean","Michael Jackson","4eb779428d40d579f14d12a9daf98fc66c7d0be4?cid=null",5.45,"billie_jean");
Song outinSpace = new Song("S1003","Out in Space","Whiz Khalifa","3d691281fae7d4ba8c5907887d2a31ce064891b3?cid=null",2.83,"wiz_khalifa");
//This is my songs array
songs[0] = theWayYouLookTonight;
songs[1] = billieJean;
songs[2] = outinSpace;
}
//Shuffle method
public Song getShuffleSong(String currentSongId)
{
Song song = null;
for(int i = 0; i < songs.length; i++)
{
if(songs[i].getId().equals(currentSongId))
{
//This part of the code is bugging me
song = songs[(int)(Math.random() * 3)];
break;
}
}
return song;
}