在Android中停止播放声音

时间:2016-01-04 18:29:29

标签: java android

我使用此代码通过点击按钮播放声音。

    b.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    if(mp.isPlaying())
                    {  
                        mp.stop();
                    } 

                    try {
                        mp.reset();
                        AssetFileDescriptor afd;
                        afd = getAssets().openFd("sound/07.mp3");
                        mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
                        mp.prepare();
                        mp.start();
                    } catch (IllegalStateException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }



                }
            });

它运作良好,但我不能停止声音!

我使用mp.stop();。但点击按钮再次播放声音!

1 个答案:

答案 0 :(得分:0)

当你的onClickListener运行时,if语句会在其他代码运行后进行检查。尝试在代码else之后添加if语句:

  b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                if(mp.isPlaying())
                {  
                    mp.stop();
                }else{
                try {
                    mp.reset();
                    AssetFileDescriptor afd;
                    afd = getAssets().openFd("sound/07.mp3");
                    mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
                    mp.prepare();
                    mp.start();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

}

            }
        });