Sound effects - garsue/libgdx GitHub Wiki

Sound effects are small audio samples, usually no longer than a few seconds, that are played back on specific game events such as a character jumping or shooting a gun.

Sound effects can be stored in various formats. Libgdx supports MP3, OGG and WAV files. RoboVM (iOS) currently does not support OGG files.

Sound effects are represented by the Sound interface. Loading a sound effect works as follows:

Sound sound = Gdx.audio.newSound(Gdx.files.internal("data/mysound.mp3"));

This loads an audio file called "mysound.mp3" from the internal directory data.

Once we have the sound loaded we can play it back:

sound.play(1.0f);

This will playback the sound effect once, at full volume. The play method on a single Sound instance can be called many times in a row, e.g. for a sequence of shots in a game, and will be overlaid accordingly.

More fine-grained control is available. Every call to Sound.play() returns a long which identifies that sound instance. Using this handle we can modify that specific playback instance:

long id = sound.play(1.0f); // play new sound and keep handle for further manipulation
sound.stop(id);             // stops the sound instance immediately
sound.setPitch(id, 2);      // increases the pitch to 2x the original pitch

id = sound.play(1.0f);      // plays the sound a second time, this is treated as a different instance
sound.setPan(id, -1, 1);    // sets the pan of the sound to the left side at full volume
sound.setLooping(id);       // keeps the sound looping
sound.stop(id);             // stops the looping sound 

Note that these modifier methods will not work in the JavaScript/WebGL back-end for now.

Once you no longer need a Sound, make sure you dispose of it:

sound.dispose();

Accessing the sound after you disposed of it will result in undefined errors.