我想在按住按钮时播放声音,但是当我松开按钮时,我希望相同的声音停止播放。像这样:
final int streamId = sp.play(sndTest, 1, 1, 0, 0, 1);
sp.stop(streamId);
我试过以下
{{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;
}
});