Mega Code Archive

 
Categories / Java / Swing JFC
 

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;     } }