如何在循环中播放原始文件夹中的mp3文件列表

时间:2014-05-06 07:20:42

标签: android android-mediaplayer

我在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循环中会引发异常。

2 个答案:

答案 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();