android媒体播放器延迟

android媒体播放器延迟,android,android-mediaplayer,Android,Android Mediaplayer,我正在为android制作一款游戏,每当用户触摸到某个物体时,它都会发出一声小的嘟嘟声 要做到这一点,我有这个简单的代码来创建媒体播放器。beep是一个约1.5秒长的小型.ogg文件 MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.beep); mp.setVolume(0.5f, 0.5f); 像这样使用它 mp.start(); 我遇到的问题是,我的游戏使用android画布,而绘制画布的线程也调用mp.start()。我发

我正在为android制作一款游戏,每当用户触摸到某个物体时,它都会发出一声小的嘟嘟声

要做到这一点,我有这个简单的代码来创建媒体播放器。beep是一个约1.5秒长的小型
.ogg
文件

MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.beep);
mp.setVolume(0.5f, 0.5f);
像这样使用它

mp.start();
我遇到的问题是,我的游戏使用android画布,而绘制画布的线程也调用
mp.start()
。我发现播放声音需要相当长的时间,而且播放时间的长短各不相同。有时1毫秒,有时15毫秒。这似乎是导致我的游戏明显滞后了一点,因为android画布非常慢

我查看了日志,似乎没有垃圾收集导致延迟。我想知道是否有人能给我一些建议来减少这次延误

编辑-我刚刚发现,
MediaPlayer
是为较长的声音文件设计的,而
SoundPool
更适合较短的音频文件。但是,我只将文件加载到
mediaPlayer
中一次,所以我看不出它会有什么不同。不过我会测试一下的

对不起,我的英语太差了

使用SoundPool而不是MediaPlayer,因为MediaPlayer需要在每次调用后释放内存,或者在每次调用player后调用方法
mp.release()