所以我在Android Studio中创建了一个简单的音板应用程序,并使用ADB在我的手机上测试它。它工作得非常好但我的问题是当我点击一个按钮播放声音片段时,我再次按下它之前有第二个延迟,这里声音。我希望能够按我想要的速度按下按钮并让它以尽可能短的延迟播放声音 。
我对按钮的另一个问题是,如果按下其他按钮,我希望停止播放一个声音。
我现在正在使用的是Mediaplayer class
和setOnClickListener
。这很简单,不是很多行代码。我觉得我已经尝试在文档中对此进行调查,但我不确定我的问题措辞是否正确,因此我可以对自己在线搜索的更详细问题提出任何建议。
我不确定这是由ADB引起的问题还是使用我的设备造成这种延迟,因此任何个人经验都会受到高度赞赏。
****** EDIT ****** 对于那些要求代码的人。
//set up the button sound
MediaPlayer mpButtonClick = MediaPlayer.create(this, R.raw.sound);
Button button = (Button) findViewById(R.id.button);
//button 1
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mpButtonClick.start();
}
});
我有5个按钮,它们都像这样工作。我只是从资源文件夹播放声音,其中4个剪辑的长度不到2秒。
由于我是新手,我不知道asynctask和SoundPool,我现在会调查它们。
********编辑2 **********
因此,在做了一些研究后,我认为SoundPool最有可能是最适合我需要的东西。但是我已经看到它为那些用它here和一般网络开发的人带来了问题。我也没有使用人们认为更有可能在不同设备上使用SoundPool的ogg文件。
asynctask听起来好像可以完成工作,但我不相信它的意图是以这种方式使用。
我还从应用程序商店下载了六个应用程序,我觉得我希望它类似,而最好的应用程序不是在Android环境中开发的,而是使用Unity引擎。因为我对此有一点经验,我相信我会走那条路,谢谢大家。