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

5番目の引数を-1に置き換えます。

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

play()docの時点で、5番目の引数loopは0(=ループなし)または-1(=無限ループ)のいずれかを取ります。

于 2012-10-21T12:04:58.100 に答える
0

に置き換えreturn false;ますreturn true;。取得する唯一の方法は、イベント全体を処理することを Android システムに通知するためACTION_UPに戻ることです。trueonClick

于 2012-10-21T11:34:38.380 に答える