// This example is from the book _Java in a Nutshell_ by David Flanagan. // Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. // You may study, use, modify, and distribute this example for any purpose. // This example is provided WITHOUT WARRANTY either expressed or implied. import java.applet.*; import java.awt.*; public class AudioAnimator extends Animator { public void init() { // do Animator initialization first super.init(); // look up the name of a sound, and then // load and play it (just once), in a separate thread. String soundname = this.getParameter("sound"); new SoundPlayer(this, soundname); } } // This is the thread class that loads and plays the sound class SoundPlayer extends Thread { private Applet applet; private String sound_url; // Store the information the run() method needs, and start it. public SoundPlayer(Applet app, String url) { applet = app; sound_url = url; this.start(); } // This is the code the thread runs to load and play the sound public void run() { applet.play(applet.getDocumentBase(), sound_url); } }