Using sounds in applets

Basic structure of an applet
Move a ball
Double buffering
Ball bouncing and change the direction
Using sound in applets
Using pictures in applets
Mouse events
Keyboard events
The first complete game
Artificial intelligence for a pong like game
Generation of random 2D landscapes

Sound files make a game much more exiting and they are really easy to "add" to a applet! It will take you just a few lines of code. In this chapter I want to show you, with the help of the "ball bounce" applet (chapter 1 c), how to add sounds in *.au Format; Java is not able to handle *.wav - files! You should hear this sound every time the ball is bouncing from one of the walls.

At first we need an object reference to an AudioClip object, thats why we declare an instance variable AudioClip called bounce.

    // Instance variable AudioClip bounce
    AudioClip bounce;

For some reason I don't know, I get a strange error message in InternetExplorer 5 if this variable is public or private. Thats why I declare it protected here.

Now we have to load the sound file to our applet (you have to import java.applet.* and java.net.* to do this!). Write the folliwing lines into the init() - method of your applet:

    // Load an audio file which is in the same directory as the class files of the applet
    bounce = getAudioClip (getCodeBase(), "bounce.au");

You can play this file by writing bounce.play() wherever you need to play it in this applet.

If the sound file is placed in another directory, (for example audio), than the class files, you can load it by writing bounce = getAudioClip (getCodeBase(), "audio/bounce.au"); laden. Unfortunatly you can't use *.wav - files which are much more common. But you can turn *.wav files into *.au files using a wave editor (for example the shareware program GoldWave). Additionally these files have to be 8 Bit, 8000 khz, Mono files. All this is a little bit complicated, but you can find many Java games in the internet and use their sound files at first.

Sourcecode download
Take a look at the applet

Next chapter

Use pictures in applets