我有一个图像按钮列表,点击时每个按钮都会播放一首歌曲。问题是我可以连续点击一个按钮,从而为点击的每个按钮启用相同的音乐。
我也可以点击switch()
案例方法中的其他按钮,而另一个按钮的音乐仍在播放。
当一个人执行时,如何禁用多次点击的工作?请参阅我的代码以供参考。
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.imageButton1:
// TODO Auto-generated method stub
sound1=MediaPlayer.create(Learn_Emela.this, R.raw.song2);
Toast.makeText(getApplicationContext(), "Tingg..", Toast.LENGTH_LONG).show();
sound1.start();
break;
case R.id.imageButton2:
// TODO Auto-generated method stub
sound1=MediaPlayer.create(Learn_Emela.this, R.raw.song2);
Toast.makeText(getApplicationContext(), "Tingg..", Toast.LENGTH_LONG).show();
sound1.start();
break;
case R.id.imageButton3:
// TODO Auto-generated method stub
sound1=MediaPlayer.create(Learn_Emela.this, R.raw.song3);
Toast.makeText(getApplicationContext(), "Tingg..", Toast.LENGTH_LONG).show();
sound1.start();
break;`
答案 0 :(得分:0)
检查音乐是否仍在运行
AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
if(manager.isMusicActive())
{
// stop music
sound1.stop();
enableBUtton(your button1);
enableBUtton(your button2);//likewise you can do or you can also reduce your code by other logic
}
else{
//start other music
sound1.start();
}
void enableButton(Button b){
b.setEnable(false);
}
答案 1 :(得分:0)
要禁用多次点击,请执行以下操作: -
MediaPlayer mp = MediaPlayer.create(FunActivity.this,
R.raw.YOUR_SONG_NAME);
mp.start();
BUTTON.setEnabled(false);
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
BUTTON.setEnabled(true);
}
});
}
}, 6000); //6000 is the duration of your song in seconds.
因此,您可以在播放歌曲的持续时间内禁用该按钮。