我想製作一個播放音頻1次播放音頻2次後播放音頻1次的程序 並再次播放音頻1次然後播放音頻3次,應用程序有一個按鈕要暫停和恢復當前音頻,並且每個音頻都會更改imageView,問題是每次我暫停音頻1時,音頻2也會播放,或者當前音頻停止並播放下一個音頻。我怎樣才能更好地控制音頻,我的意思是我想暫停當前的音頻,而另一個則要等到當前的音頻結束。如何暫停和恢復音頻
公共類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);
}
});
}
}
你可以發佈一些你的代碼,所以我們可以看到你是如何把它放在一起的嗎? – 2013-02-18 19:51:56
我確實把我的代碼! – RWillamy 2013-02-18 20:22:14