【问题标题】:Keep a sound sample playing till button is released android保持声音样本播放直到按钮被释放android
【发布时间】:2016-05-14 02:38:43
【问题描述】:

我正在尝试实现一个可以播放弦乐的音乐键盘应用程序。弦音需要一直播放到用户松开按键。

我正在使用 1 秒的小样本,想法是使用 SoundPool on 循环样本

MotionEvent.ACTION_DOWN,

并停止它

ACTION_UP

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

我该怎么办?

【问题讨论】:

    标签: android ontouchlistener soundpool


    【解决方案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;
            }
        });
    

    【讨论】:

    • 这可行,但循环不流畅。我使用了 1 秒长的正弦波样本。在声音结束一个循环并再次开始时(即在每次重复开始时),会引入一些奇怪的咔哒声
    • 你能把那个音频发给我吗...让我检查一下
    • 您可以通过在 Audacity 上单击生成 -> 音调 -> 正弦波,440Hz,幅度:1,持续时间:1 秒来创建它。我不知道怎么把声音文件发给你
    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 2013-08-29
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多