保持声音样本播放直到按钮被释放android
Posted
技术标签:
【中文标题】保持声音样本播放直到按钮被释放android【英文标题】:Keep a sound sample playing till button is released android 【发布时间】:2016-05-14 02:38:43 【问题描述】:我正在尝试实现一个可以播放弦乐的音乐键盘应用程序。弦音需要一直播放到用户松开按键。
我正在使用 1 秒的小样本,想法是使用 SoundPool on 循环样本
MotionEvent.ACTION_DOWN
,
并停止它
ACTION_UP
被调用。但是循环似乎不起作用。我可以放一个“足够长”的声音样本,假设没有用户会长时间按住按钮,但这不是我希望应用程序工作的方式。
我该怎么办?
【问题讨论】:
【参考方案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 秒来创建它。我不知道怎么把声音文件发给你以上是关于保持声音样本播放直到按钮被释放android的主要内容,如果未能解决你的问题,请参考以下文章