如何在单击“播放”按钮1次时逐个播放所有音频文件

时间:2014-11-09 06:56:44

标签: java android loops audio

我有两个mp3文件。点击"播放"我想播放所有mp3的逐个文件。按钮.. (这意味着在第一音频播放后,需要播放第二音频文件)

我试过这段代码。但是没有工作

 package com.example.playaudio;

  import android.app.Activity;
  import android.media.AudioManager;
  import android.media.MediaPlayer;
  import android.net.Uri;
  import android.os.Bundle;
  import android.view.Menu;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.TextView;


 public class MainActivity extends Activity implements OnClickListener{
private MediaPlayer mp;

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    Button button1=(Button)findViewById(R.id.button_1);
    button1.setOnClickListener(this);

}

public void onClick(View v) {
    int x,y ;
    x=R.raw.a;           //Mp3 file 1
    y=R.raw.b;           //Mp3 file 2          

    if (mp != null) {
        mp.release();
    }

    int z=0;

     for(int i=0; i<10; i++){            
            mp = MediaPlayer.create(this, x);
            mp.start();

        }
    }   

@Override
protected void onDestroy() {
    if(null!=mp){
        mp.release();
    }
    super.onDestroy();
}
}

请告诉我这个问题的解决方案

2 个答案:

答案 0 :(得分:2)

尝试使用While循环

    while(x<10){
        //code
     }

答案 1 :(得分:1)

使用Mediaplayer的默认构造函数获取Mediaplayer对象的句柄,然后将所有音轨添加到回放队列中。

MediaPlayer _myPlayer = new MediaPlayer();
myPlayer.setDataSource( myContext , myURI);
myPlayer.start();


MediaPlayer _nextPlayer = new MediaPlayer();
nextPlayer.setDataSource( myContext , myNextURI);
myPlayer.setNextMediaPlayer(nextPlayer);