/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.dataprocess.gui.util; import net.codjo.dataprocess.common.Log; import java.applet.Applet; import java.applet.AudioClip; /** * */ public class JukeBox { private JukeBox() { } /** * Joue le son de la victoire et le lib�re sinon le p�riph�rique sonore reste occup� pour les autres * applications. */ public static void playSuccessSound() { String sound = "/sons/Bravos.wav"; try { AudioClip successClip = loadSound(sound); successClip.play(); try { Thread.sleep(1500); successClip = null; flushMemory(); } catch (InterruptedException ex) { Log.error(JukeBox.class, ex); } } catch (Exception e) { Log.error(JukeBox.class, "Impossible de jouer le son de r�ussite (" + sound + ")"); throw new IllegalArgumentException("Impossible de jouer le son de r�ussite (" + sound + ")"); } } /** * Joue le son de la d�faite et le lib�re sinon le p�riph�rique sonore reste occup� pour les autres * applications. */ public static void playFailureSound() { String sound = "/sons/Verre.wav"; try { AudioClip failureClip = loadSound(sound); failureClip.play(); try { Thread.sleep(1500); failureClip = null; flushMemory(); } catch (InterruptedException ex) { Log.error(JukeBox.class, ex); } } catch (Exception e) { Log.error(JukeBox.class, "Impossible de jouer le son d'�chec (" + sound + ")"); throw new IllegalArgumentException("Impossible de jouer le son d'�chec (" + sound + ")"); } } /** * Chargement d'un son * * @return Le son */ private static AudioClip loadSound(String path) { return Applet.newAudioClip(JukeBox.class.getResource(path)); } /** * Force le garbage collector */ private static void flushMemory() { System.gc(); System.runFinalization(); } }