Android - 无法正确停止Soundpool

时间:2016-09-12 18:14:46

标签: java android ontouchlistener android-handler soundpool

<<这是我的代码>>

Handler HC1;
int streamId;

on onCreate I Have

HC1 = new Handler();

在onCreate以外的其他课程中,但我有相同的活动

public class MyTouchListene implements OnTouchListener {
    @Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (v.getId()) {

            case R.id.C1:

                switch (event.getAction()) {

                    case MotionEvent.ACTION_DOWN:
                        streamId = sp.play(pianoSound[keyNumber], 1, 1, 0, 0, 1);
                        break;


                    case MotionEvent.ACTION_UP:

                        HC1.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                sp.stop(streamId);
                            }
                        }, 500);
                        break;
                }
                break;
        }
        return true;
    }

}

我的问题

我在soundpool中有6秒长的音频

当我触摸第一个音频的按钮开始播放时,当我拿起手指时,音频在500毫秒后停止,正如代码中所写,但是当我双击按钮时,相同的音频开始两次(我想要)但音频开始首先在500毫秒后停止,但第一个音频在完成之前不会停止。为什么?帮助我

我想要这样的东西......

如果我在0毫秒音频开始时触摸按钮,然后拿起我的手指250毫秒,所以音频停在750毫秒...... 但是,如果我在0毫秒触摸按钮,接收250毫秒,再次触摸250毫秒,然后再接收750,这样两个音频播放时间为750毫秒,另一个停止在1250毫秒

...等待 在此先感谢...

0 个答案:

没有答案