home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freesoft 1997 May
/
Freesoft_1997-05_cd.bin
/
recenz
/
PROGRAM
/
JAVADRAW
/
iavadraw301_inst.exe
/
data.z
/
SoundExample.java
< prev
next >
Wrap
Text File
|
1997-05-20
|
4KB
|
138 lines
/*
* Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for NON-COMMERCIAL purposes and without
* fee is hereby granted provided that this copyright notice
* appears in all copies. Please refer to the file "copyright.html"
* for further important copyright and licensing information.
*
* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
* THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
*/
import java.applet.*;
import java.awt.*;
public class SoundExample extends Applet {
SoundList soundList;
String onceFile = "bark.au";
String loopFile = "train.au";
AudioClip onceClip;
AudioClip loopClip;
Button playOnce;
Button startLoop;
Button stopLoop;
Button reload;
boolean looping = false;
public void init() {
playOnce = new Button("Bark!");
add(playOnce);
startLoop = new Button("Start sound loop");
stopLoop = new Button("Stop sound loop");
stopLoop.disable();
add(startLoop);
add(stopLoop);
reload = new Button("Reload sounds");
add(reload);
validate();
startLoadingSounds();
}
void startLoadingSounds() {
//Start asynchronous sound loading.
soundList = new SoundList(this, getCodeBase());
soundList.startLoading(loopFile);
soundList.startLoading(onceFile);
}
public void stop() {
//If one-time sound were long, we'd stop it here, too.
if (looping) {
loopClip.stop(); //Stop the sound loop.
}
}
public void start() {
if (looping) {
loopClip.loop(); //Restart the sound loop.
}
}
public boolean action(Event event, Object arg) {
//PLAY BUTTON
if (event.target == playOnce) {
if (onceClip == null) {
//Try to get the AudioClip.
onceClip = soundList.getClip(onceFile);
}
if (onceClip != null) { //If the sound is loaded:
onceClip.play(); //Play it once.
showStatus("Playing sound " + onceFile + ".");
} else {
showStatus("Sound " + onceFile + " not loaded yet.");
}
return true;
}
//START LOOP BUTTON
if (event.target == startLoop) {
if (loopClip == null) {
//Try to get the AudioClip.
loopClip = soundList.getClip(loopFile);
}
if (loopClip != null) { //If the sound is loaded:
looping = true;
loopClip.loop(); //Start the sound loop.
stopLoop.enable(); //Enable stop button.
startLoop.disable(); //Disable start button.
showStatus("Playing sound " + loopFile + " continuously.");
} else {
showStatus("Sound " + loopFile + " not loaded yet.");
}
return true;
}
//STOP LOOP BUTTON
if (event.target == stopLoop) {
if (looping) {
looping = false;
loopClip.stop(); //Stop the sound loop.
startLoop.enable(); //Enable start button.
stopLoop.disable(); //Disable stop button.
}
showStatus("Stopped playing sound " + loopFile + ".");
return true;
}
//RELOAD BUTTON
if (event.target == reload) {
if (looping) { //Stop the sound loop.
looping = false;
loopClip.stop();
startLoop.enable(); //Enable start button.
stopLoop.disable(); //Disable stop button.
}
loopClip = null; //Reset AudioClip to null.
onceClip = null; //Reset AudioClip to null.
startLoadingSounds();
showStatus("Reloading all sounds.");
return true;
}
return false; //some event I don't know about...
}
}