我正在尝试制作一个程序,该程序在播放音频 2 一次后播放音频 10 次,然后再次播放音频 10 次,然后播放音频 3 一次,该应用程序有一个按钮来暂停和恢复当前音频以及每个音频更改imageView ,问题是每次我暂停 audio1 时,audio2 也会播放,或者当前音频停止并播放下一个音频。我怎样才能更好地控制音频,我的意思是我想暂停当前音频,另一个等到当前音频完成。
公共类 PrincipalActivity 扩展 ClassePai {
Thread thread;
private int currentPosition, duracaoTotal;
private MediaPlayer avemaria, intro, primeiro, segundo, terceiro, quarto,
quinto, salve;
private ImageView imagem;
private Button btnProximo, btnAnterior, btnPause;
protected Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_principal);
avemaria = MediaPlayer.create(this, R.raw.teste);
intro = MediaPlayer.create(this, R.raw.teste);
primeiro = MediaPlayer.create(this, R.raw.ave_maria);
segundo = MediaPlayer.create(this, R.raw.ave_maria);
terceiro = MediaPlayer.create(this, R.raw.terceiro_goz);
quarto = MediaPlayer.create(this, R.raw.quarto_goz);
quinto = MediaPlayer.create(this, R.raw.quinto_goz);
salve = MediaPlayer.create(this, R.raw.salve_bencao);
imagem = (ImageView) findViewById(id.imageViewGoz);
imagem.setImageResource(com.willamydotcom.osantoterco.R.drawable.g
+ getContador());
Thread thread = new Thread() {
public void run() {
play(primeiro);
// wait while the current audio plays
while (primeiro.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(avemaria);
while (avemaria.isPlaying()) {
}
play(segundo);
while (avemaria.isPlaying()) {
}
}
};
thread.start();
btnProximo = (Button) findViewById(id.btnTest);
btnProximo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (avemaria.isPlaying()) {
avemaria.start();
} else if (primeiro.isPlaying()) {
primeiro.start();
} else if (segundo.isPlaying()) {
segundo.start();
}
}
});
btnPause = (Button) findViewById(id.btnPlay);
btnPause.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (avemaria.isPlaying()) {
avemaria.pause();
} else if (primeiro.isPlaying()) {
primeiro.pause();
} else if (segundo.isPlaying()) {
segundo.pause();
}
}
});
btnAnterior = (Button) findViewById(id.btnAnterior);
btnAnterior.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_principal, menu);
return true;
}
public void play(MediaPlayer audio) {
audio.start();
audio.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
imagem.setImageResource(R.drawable.g + getContador());
setContador(getContador() + 1);
}
});
}
}