我最近在我的Android游戏中添加了简单的循环背景音乐。它使用Canvas绘制到屏幕上,所以我在优化性能时非常小心。我使用标准的MediaPlayer添加音乐,这似乎是处理循环音乐的最常见和最简单的方法。不幸的是,我偶尔会遇到音乐跳跃的问题,更糟糕的是,有时会导致游戏中出现明显的滞后。
我唯一可以测试的手机是Droid Eris,这是一款相当老的手机,所以我怀疑这在较新的Android手机上不会成为问题,但我希望我的游戏可以在所有Android设备上玩。我可以做些什么来添加音乐,同时保持合理的性能?
这是我添加的代码:
// in setup() method of game thread
mediaPlayer = MediaPlayer.create(context, R.raw.rl_theme);
mediaPlayer.setLooping(true);
mediaPlayer.start();
// in method called when the player looses
mediaPlayer.stop();
mediaPlayer.release();发布于 2010-12-28 11:31:59
看起来你无能为力。是的,添加音乐确实会降低Android应用程序的速度,但在较新的手机上,这似乎不是一个主要问题。我确实将音频文件的格式从OGG改为MP4,以修复Android MediaPlayer中似乎存在的一个错误(仍在调查中,但媒体服务器在OGG上崩溃了,并且与MP4完美配合),性能似乎有所改善。不过,我不确定这是否相关。
发布于 2010-12-24 03:37:38
我从来没有遇到过这个问题,所以我不是很确定,但我认为SoundPool就是您正在寻找的。
http://developer.android.com/reference/android/media/SoundPool.html
https://stackoverflow.com/questions/4521682
复制相似问题