如何在SoundPool类中使用stop()方法?

时间:2016-09-26 19:58:29

标签: java android soundpool

我想在按住按钮时播放声音,但是当我松开按钮时,我希望相同的声音停止播放。像这样:

final int streamId = sp.play(sndTest, 1, 1, 0, 0, 1);

sp.stop(streamId);

我试过以下

{{1}}

但它似乎无法奏效,如果有人能帮助我,请提前谢谢。

1 个答案:

答案 0 :(得分:0)

我想通了,因为我将流ID声明为final,我无法在onTouchListener()中初始化我的变量,所以我将其声明为静态int,如下所示:

static int streamID;

...

btn1_row1.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {

        if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {

            sndTestID = sp.play(sndTest, 1, 1, 0, 0, 1);

        } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
            sp.stop(sndTestID);
        }
        return false;
    }
});