package com.javaonthebrain.choco; import javax.microedition.media.*; import javax.microedition.media.control.*; import java.io.*; class SoundThread extends Thread { // Plays sounds in a separate thread private final static String SOUND_FILES[]={"/correct.amr","/drop.amr","/fadein.amr", "/hallelujah.amr","/push.amr","/select.amr"}; private final static String SOUND_FORMATS[]={"audio/amr","audio/amr","audio/amr", "audio/amr","audio/amr","audio/amr"}; public final static int SOUND_CORRECT = 0; public final static int SOUND_DROP = 1; public final static int SOUND_FADEIN = 2; public final static int SOUND_HALLELUJAH = 3; public final static int SOUND_PUSH = 4; public final static int SOUND_SELECT = 5; private Player soundEffects[]; private boolean keepGoing=true; private int toPlay=-1,lastPlayed=-1; public SoundThread() { soundEffects=new Player[SOUND_FILES.length]; try{ for (int i=0;i=0) { try { if (lastPlayed>=0) soundEffects[lastPlayed].stop(); if (soundEffects[toPlay]!=null) { soundEffects[toPlay].start(); lastPlayed=toPlay; } } catch(MediaException me){me.printStackTrace();} toPlay=-1; } try{ sleep(100); } catch(InterruptedException ie){} } } public void play(int s) { toPlay=s; } public void shutDown() { keepGoing=false; } }