3

我正在尝试在按下按钮时循环播放声音。

当我按下按钮使事件“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;
}
4

2 回答 2

2

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

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

play() 文档开始,第五个参数loop采用 0(= 无循环)或 -1(= 永远循环)

于 2012-10-21T12:04:58.100 回答
0

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

于 2012-10-21T11:34:38.380 回答