Lucas
Lucas

Reputation: 174

AndEngine - lagging when playing sound

I'm creating a simple game with AndEngine. A ball is dropped toward a floor, and whenever it collides with the floor, I want to play a short colliding sound. In method onUpdate(), I check for collision and play sound accordingly.

I use class Sound for playing sound (as in the SoundExample of AndEngine). Testing on Samsung Galaxy S2.

The problem is the program gets lagged when the sound is played. And it even affects game physics (sometimes the ball bounces higher than the highest point when disabling sound).

This is the code:

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;
}

}

If I remove mSound.play() or keep playing sound (remove comment at line 2), the program works smoothly.

Does anyone encounter the same problem? And have a solution to get rid of the lag? Many thanks!

Upvotes: 4

Views: 845

Answers (1)

Jimmar
Jimmar

Reputation: 4449

as that you mentioned that it works smoothly when you keep playing the sound .. then the problem is not with the sound

the collidesWith() method is probably your culprit, remember that onUpdate gets called every frame .. maybe you'll have to redesign your code or limit the number of frames per second [change your engine options to use a FixedStepEngine to achieve that]

Upvotes: 1

Related Questions