This applet is a simple button that plays an audio clip when pushed
/*
* Copyright (c) 1996, 1998 Bill Venners. All Rights Reserved.
*
* Source code file for the Whistle applet, part of the article
* "Impressions of SD '98" by Bill Venners, published
* in JavaWorld March, 1998
*
* This source file may not be copied, modified, or redistributed
* EXCEPT as allowed by the following statements: You may freely use
* this file for your own work, including modifications and
* distribution in compiled (class files, native executable, etc.)
* form only. You may not copy and distribute this file. You may not
* remove this copyright notice. You may not distribute modified
* versions of this source file. You may not use this file in printed
* media without the express permission of Bill Venners.
*
* BILL VENNERS 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 PARTICULAR PURPOSE, OR NON-INFRINGEMENT. BILL VENNERS
* SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY A LICENSEE AS A
* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
* DERIVATIVES.
*/
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Label;
import java.applet.AudioClip;
import java.awt.Event;
import java.net.URL;
import java.net.URLConnection;
import java.net.MalformedURLException;
/**
* This applet is a simple button that plays an audio clip when
* pushed.
*
* @author Bill Venners
*/
public class Whistle extends java.applet.Applet implements Runnable {
URL theURL;
private AudioClip yeehaa;
private Thread runner;
private boolean startClip = false;
private boolean urlExceptionWasThrown = false;
public void start() {
if (runner == null) {
runner = new Thread(this);
runner.start();
}
}
public void stop() {
if (runner != null) {
if (yeehaa != null) {
yeehaa.stop();
}
runner.stop();
runner = null;
}
}
public void init() {
super.init();
String url = getParameter("clipURL");
try {
theURL = new URL(getDocumentBase(), url);
}
catch (MalformedURLException e) {
urlExceptionWasThrown = true;
}
if (!urlExceptionWasThrown) {
yeehaa = getAudioClip(theURL);
setLayout(new BorderLayout());
add("Center", new Button("Whistle"));
}
else {
setLayout(new BorderLayout());
add("Center", new Label("Sorry, No Audio"));
}
}
public void run() {
while (runner != null) {
if (startClip && yeehaa != null) {
startClip = false;
yeehaa.play();
}
try {
Thread.sleep(500);
}
catch (InterruptedException e) {
}
}
}
public boolean action(Event evt, Object arg) {
if (evt.target instanceof Button) {
String bname = (String) arg;
if (bname.equals("Whistle")) {
startClip = true;
}
}
return true;
}
}
Related examples in the same category