Android媒体播放器延迟

时间:2012-02-21 07:36:27

标签: android android-mediaplayer

我正在制作一款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一次,所以我看不出它应该如何产生任何影响。我会测试一下

1 个答案:

答案 0 :(得分:1)

抱歉我的英文

使用SoundPool而不是MediaPlayer会导致MediaPlayer在每次调用后调用内存mp.release()后需要释放内存

SoundPool tutorial here