按下按钮时循环播放声音

时间:2012-10-21 11:22:51

标签: java android ontouchlistener onclicklistener soundpool

按下按钮时,我正试图循环播放声音。

当我按下按钮时,我怎么能这样做事件“MotionEvent.ACTION_DOWN”不会停止运行声音?我做的方式只运行一次。我已经尝试将return语句更改为false,但它不起作用。

setLoop MediaPlayer选项对我没有帮助,因为我想继续播放新的声音,虽然当前的声音没有播放完毕。

这是我的代码:

public boolean onClick(View v, MotionEvent event) {
    if(event.getAction() == MotionEvent.ACTION_DOWN){
        //here should not stop running the soundPool
        soundPool.play(R.raw.sound1, 1, 1, 1, 0, 1);
    }
    if(event.getAction() == MotionEvent.ACTION_UP){
        // stop running the soundpool
    }
    return true;
}

2 个答案:

答案 0 :(得分:2)

将第五个参数替换为-1:

soundPool.play(R.raw.sound1, 1, 1, 1, -1, 1);

play() doc起,第五个参数loop取0(=无循环)或-1(=永远循环)

答案 1 :(得分:0)

return false;替换为return true;。获得ACTION_UP的唯一方法是返回true通知Android系统您将处理整个onClick事件。