我正在尝试使用2个按钮播放2个音频文件,当按下另一个按钮时,应停止播放的音频并开始一个新的音频文件。 问题是,当应用程序启动时,只有第一个单击的按钮才能作为暂停并启动,而另一个按钮只是在暂停。
请注意I。我首先单击的任何按钮都可以,而其他按钮则不能。
注释二。我试图将<0>也设为<1>都没有解决问题。
注释III。我试图在不同的点击侦听器中格式化狗的代码 从点击的方式来看,bth无法解决问题。
另一方面,我的应用程序将包含约10个按钮,每次onclick时我都需要暂停9个并启动一个按钮,有没有办法用较小的代码将它们全部暂停? 谢谢
//Buttons
dog = Button.findViewById(R.id.dog)
cat = Button.findViewById.(R.id.cat)
//MediaPlayers
final dogMP = MediaPlayer.Create(this, R.raw.park)
final catMP = MediaPlayer.Create(this, R.raw.meaw)
//onClicks
//dog
dog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
catMP.pause();
catMP.seekTo(0);
if (!dogMP.isPlaying()) {
dogMP.setLooping(true);
dogMP.start();
} else {
dogMP.pause();
dogMP.seekTo(0);
}
}
});
//cat
cat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!catMP.isPlaying()) {
dogMP.pause();
dogMP.seekTo(0);
catMP.setLooping(true);
catMP.start();
} else {
catMP.pause();
catMP.seekTo(0);
}
}
});`
答案 0 :(得分:0)
您可以通过检查下面给出的mediaplayer
试试代码来对所有按钮执行此操作。
//dog
dog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mediaplayer != null){
if (mediaplayer.isplaying()) {
mediaplayer.stop();
// start your new audio
dogMP.setLooping(true);
dogMP.start();
} else {
// start your new audio
dogMP.setLooping(true);
dogMP.start();
}
}
}
});