Android 用不同的按钮播放不同的声音
我一共有四个按钮,即btn1、btn2、btn3、btn4。同时我有三种声音。btn1停止/暂停所有声音。btn1播放sound1,当我按下btn2或btn3时,sound1应根据按下的按钮停止并播放相应的声音。我正在尝试使用以下代码执行此操作:Android 用不同的按钮播放不同的声音,android,eclipse,Android,Eclipse,我一共有四个按钮,即btn1、btn2、btn3、btn4。同时我有三种声音。btn1停止/暂停所有声音。btn1播放sound1,当我按下btn2或btn3时,sound1应根据按下的按钮停止并播放相应的声音。我正在尝试使用以下代码执行此操作: btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-gener
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
mp1.pause();
mp2.pause();
mp3.pause();
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (mp1.isPlaying()) {
mp1.pause();
} else {
mp2.pause();
mp3.pause();
mp1.setLooping(true);
mp1.start();
}
}
}
);
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (mp2.isPlaying()==true) {
mp2.pause();
}else{
mp2.setLooping(true);
mp2.start();
mp3.pause();
mp1.pause();
}
}
});
btn4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(mp3.isPlaying()==true){
mp3.pause();
}else{
mp3.setLooping(true);
mp3.start();
mp1.pause();
mp2.pause();}
}
});
}
另外,我有意使用OnClick Listener
请告诉我我做错了什么。建议:
将else语句中的pause调用替换为stop调用。
添加一个调用以准备在每个else语句中启动的mp。
在呼叫准备之前,将呼叫移动到停止。
每个onClick方法的外观如下所示:
if (mp1.isPlaying()) {
mp1.pause();
} else {
mp2.stop();
mp3.stop();
mp1.setLooping(true);
try {
mp1.prepare();
mp1.start();
}
catch(Exception e)
{
}
}
如果您不想重叠声音,就不需要使用多个音频播放器。只需使用一个,并根据按下的按钮为其提供正确的URI。这样应用程序就会崩溃,请尝试。