我在res/raw
文件夹中有很多声音文件(.MP3)。我想逐个播放每个文件。
这是我的代码
int [] resID ={ R.raw.s1,R.raw.s2,R.raw.s3,R.raw.s4,R.raw.s5};
ArrayList<Integer> indexForMusic;
..........................
..........................
// on click of play button
public void playMusic(View v)
{
for(int i:indexForMusic)
{
MediaPlayer mediaPlayer=MediaPlayer.create(this,resID[i]);
mediaPlayer.start();
try
{
wait(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
但问题是所有MP3文件都是同时播放的,播放文件时没有延迟。
请告诉我如何一个接一个地播放音乐? 将wait()放入for循环中会引发异常。
答案 0 :(得分:0)
尝试线程, 类似于以下内容
Thread T=new Thread(new runnable(){
public void run(){
MediaPlayer mediaPlayer=MediaPlayer.create(this,resID[i]);
mediaPlayer.start();
try
{
sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
);
T.start();
答案 1 :(得分:-1)
同时*, 或者试试CountDownTimer
new CountDownTimer(1000, 100)
{
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
mediaPlayer.start();
}
}.start();