Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在使用mediaplayer停止mediaplayer。停止不起作用_Java_Android_Multithreading_Android Mediaplayer - Fatal编程技术网

Java 正在使用mediaplayer停止mediaplayer。停止不起作用

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

我是android编程新手。单击停止按钮时,我在停止mediaplayer时遇到问题。我想我的代码有一些问题,因为我的声音是循环的,这就是为什么mp.stop();不工作或可能是因为睡眠?我不确定。有人能帮我做这些吗?提前谢谢

以下是我的停止代码:

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。