保持声音样本播放直到按钮释放android

时间:2016-05-14 02:38:43

标签: android ontouchlistener soundpool

我正在尝试实现一个能播放字符串声音的音乐键盘应用程序。在用户释放密钥之前,需要播放字符串声音。

我正在使用1秒的小样本,想要使用SoundPool

循环样本

MotionEvent.ACTION_DOWN

并将其停止为

ACTION_UP

被调用。但循环似乎不起作用。我可以设置一个“足够长”的声音样本,假设没有用户按下按钮那么久,但这不是我希望应用程序工作的方式。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

试试这段代码:
在onCreate()

mp=MediaPlayer.create(MainActivity.this,R.raw.beep);

b.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                mp.setLooping(true);
                mp.start();
            }

            if (event.getAction() == MotionEvent.ACTION_UP) {
                mp.stop();
                mp=MediaPlayer.create(MainActivity.this,R.raw.beep);
            }
            return false;
        }
    });