我最近在我的Android游戏中添加了简单的循环背景音乐。它使用Canvas
绘制到屏幕,所以我非常小心优化性能。我使用标准MediaPlayer
添加了音乐,这似乎是处理循环音乐的最常见和最简单的方法。不幸的是,我偶尔会遇到音乐跳过的问题,更糟糕的是,有时会导致游戏中出现明显的延迟。
我唯一要测试的手机是Droid Eris,这是一款相当古老的手机,所以我怀疑这不会是新手机上的问题,但我希望我的游戏可以在所有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();
答案 0 :(得分:0)
我从未遇到过这个问题,所以我并不积极,但我认为SoundPool是您正在寻找的。 p>
http://developer.android.com/reference/android/media/SoundPool.html
答案 1 :(得分:0)
看起来你无能为力。是的,添加音乐确实会降低某些Android应用程序的速度,但这似乎不是新手机上的主要问题。我确实将音频文件的格式从OGG更改为MP4,以修复Android MediaPlayer
中的错误(仍在调查,但媒体服务器在OGG上崩溃并与MP4完美配合)和表现似乎变得更好了。不过,我不确定这是否相关。