Java 正在使用mediaplayer停止mediaplayer。停止不起作用
我是android编程新手。单击停止按钮时,我在停止mediaplayer时遇到问题。我想我的代码有一些问题,因为我的声音是循环的,这就是为什么mp.stop();不工作或可能是因为睡眠?我不确定。有人能帮我做这些吗?提前谢谢 以下是我的停止代码:Java 正在使用mediaplayer停止mediaplayer。停止不起作用,java,android,multithreading,android-mediaplayer,Java,Android,Multithreading,Android Mediaplayer,我是android编程新手。单击停止按钮时,我在停止mediaplayer时遇到问题。我想我的代码有一些问题,因为我的声音是循环的,这就是为什么mp.stop();不工作或可能是因为睡眠?我不确定。有人能帮我做这些吗?提前谢谢 以下是我的停止代码: bb5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0){ if (mp.isPlayi
bb5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0){
if (mp.isPlaying()){
mp.stop();
}
} // END onClick()
});
以下是我播放声音的代码:
protected void managerOfSound() {
int size = tempq.size();
for (int i = 0; i < tempq.size(); i++) {
String u =tempq.get(i);
//WHOLE
if (u.equals("a4")){
mp = MediaPlayer.create(this, R.raw.a4);
mp.start();
try {
Thread.sleep(2000);
} catch (InterruptedException ie) {
// TODO Auto-generated catch block
}
}else if (u.equals("b4")){
mp = MediaPlayer.create(this, R.raw.b4);
mp.start();
try {
Thread.sleep(2000);
} catch (InterruptedException ie) {
// TODO Auto-generated catch block
}
}else if (u.equals("c4")){
mp = MediaPlayer.create(this, R.raw.c4);
mp.start();
try {
Thread.sleep(2000);
} catch (InterruptedException ie) {
// TODO Auto-generated catch block
}
受保护的void managerOfSound(){
int size=tempq.size();
对于(int i=0;i
是否在主(UI)线程上调用managerOfSound()?如果是,则不会执行单击按钮bb5,因为UI线程被thread.sleep(…)锁定。为什么要使用thread.sleep()
?bb1.setOnClickListener(新视图.OnClickListener(){@Override public void onClick(视图arg0){managerOfSound();}//END-onClick()});bb1.setOnClickListener(new View.OnClickListener(){@Override public void-onClick(视图arg0){managerOfSound();}//END-onClick()});单击bb1按钮时调用managerOfSound。