AndEngine - 播放声音时滞后

时间:2012-06-08 03:51:18

标签: android andengine

我正在用AndEngine创建一个简单的游戏。一个球落在地板上,每当它与地板碰撞时,我想发挥短暂的碰撞声。在方法onUpdate()中,我检查碰撞并相应地播放声音。

我使用类Sound播放声音(如An​​dEngine的SoundExample)。在三星Galaxy S2上测试。

问题是当播放声音时程序会滞后。它甚至会影响游戏物理(有时候球的弹跳高于禁用声音时的最高点)。

这是代码:

public void onUpdate(float pSecondsElapsed) {
// mSound.play();       
if (this.mSprite.collidesWith(ball.getSprite())) {          
    if (!colliding && mSound != null){ // play sound for first collision only
        mSound.play();          
        colliding = true;
    }
}
else{
    colliding = false;
}

}

如果我删除mSound.play()或继续播放声音(删除第2行的评论),程序运行顺畅。

有没有人遇到同样的问题?并有一个摆脱滞后的解决方案?非常感谢!

1 个答案:

答案 0 :(得分:1)

正如你提到的那样,当你继续播放声音时它运作顺畅..然后问题不在于声音

collidesWith()方法可能是你的罪魁祸首,请记住onUpdate每帧被调用..也许你将不得不重新设计你的代码或限制每秒的帧数[改变引擎选项以使用FixedStepEngine来实现即]