我正在制作一款Android游戏,只要用户触摸某个物体,就需要发出一声小哔声。
要做到这一点,我有这个简单的代码来创建媒体播放器。哔哔声是一个长度约为1.5秒的小.ogg
文件。
MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.beep);
mp.setVolume(0.5f, 0.5f);
并像这样使用
mp.start();
我遇到的问题是我的游戏使用了android画布,而绘制到画布的线程也调用mp.start()
。我发现播放声音需要花费很多时间,并且需要花费多长时间。有时1ms,有时15ms。这似乎导致我的游戏明显滞后一点,因为Android画布反正很慢。
我已经查看了日志,但似乎没有垃圾收集导致延迟。我想知道是否有人可以给我一些减少延迟的建议
编辑 - 我刚刚发现MediaPlayer
专为较长的声音文件而设计,而SoundPool
则适用于较短的音频文件。但是,我只将文件加载到mediaPlayer
一次,所以我看不出它应该如何产生任何影响。我会测试一下
答案 0 :(得分:1)