按下时播放声音,按下时停止播放声音?

时间:2018-03-14 07:19:52

标签: android soundpool piano

我的声音有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;
                        }
                    });

1 个答案:

答案 0 :(得分:0)

在首先按button期间,如果有任何礼物,您需要停止soundPool

在再次soundPool.stop(SID1_c);之前在case MotionEvent.ACTION_DOWN:中写soundPool