1

我有一个持续时间为 7 秒的声音。我想在按下时播放它并在按下时(例如 1 秒)后停止播放。我的代码如下,但我有问题???快速按几次时,声音全部播放7秒,不要停止。我想创建一个简单的钢琴。有什么问题?你对此有什么想法吗?

c.setOnTouchListener(new View.OnTouchListener() {
                        @Override
                        public boolean onTouch(View v, MotionEvent event) {
                            switch (event.getAction()) {
                                case MotionEvent.ACTION_DOWN: // Button Pressed
                                    SID1_c = soundPool.play(sound_c, 1, 1, 1, 0, 0);
                                    c.setBackgroundResource(R.drawable.key4);
                                                                           return true;
                                case MotionEvent.ACTION_UP:// Button released

                                    handler =new Handler();
                                    handler.postDelayed(new Runnable() {
                                        @Override
                                        public void run() {
                                            soundPool.stop(SID1_c);
                                        }
                                    },90);

                                    return false;

                            }
                            return false;
                        }
                    });
4

1 回答 1

0

在按下第一个时,如果有的话,button您需要停止。soundPool

soundPool.stop(SID1_c);在重新case MotionEvent.ACTION_DOWN:开始之前写soundPool

于 2018-03-14T07:41:15.077 回答