在音樂播放器中,播放模式一般放在音樂播放完畢後自動識別,如下給出邏輯代碼,可根據需要添加合適的代碼
public static final int ALL = 0;//全部循環
public static final int SINGLE = 1;//單曲循環
public static final int RANDOM = 2;//隨機
// 一首歌播放完成後(這裡設置播放模式)
public class Completed implements OnCompletionListener
{
@Override
public void onCompletion(MediaPlayer mp)
{
if(playMode == ALL)//全部循環
{
if (position == listMusic.size() - 1)//默認循環播放
{
position = 0;// 第一首
}
else
{
position++;
}
}
else if(playMode == SINGLE)//單曲循環
{
//position不需要更改
}
else if(playMode == RANDOM)//隨機
{
position = (int)(Math.random()*listMusic.size());//隨機播放
}
elseSet();//其他播放的處理
}
}
制作單曲循環時,最好不要像如上代碼所設計,由於沒有給出實際的position,程序可能跳出BUG,甚至崩潰,我所實現的單曲循環是監聽用戶的模式選擇,當音樂播放完畢之後,重新啟動MediaPlayer就可以了