Sound soundPlayer;
SoundListener soundListener = new EMSoundListener();
EMSound currentSound = null;
boolean soundPlaying = false;
boolean soundEnable = true;
class EMSoundListener
implements SoundListener {
public void soundStateChanged(Sound sound, int event) {
switch (event) {
case Sound.SOUND_STOPPED:
soundPlaying = false;
break;
case Sound.SOUND_PLAYING:
soundPlaying = true;
}
}
}
public EMSound loadSound(String resfile, int resID) {
EMSound sound;
try {
InputStream is = getClass().getResourceAsStream(resfile + "/" + resID +
".ott");
int len = (int) is.skip(10000);
is.close();
is = getClass().getResourceAsStream(resfile + "/" + resID + ".ott");
byte[] barr = new byte[len];
is.read(barr);
is.close();
sound = new EMSound(barr, Sound.FORMAT_TONE);
}
catch (Exception ex) {
sound = null;
}
return sound;
}
public void playSound(EMSound sound, int count) {
if (!soundEnable) {
return;
}
try { //colico
if (soundPlaying) {
stopSound();
}
if (soundPlayer == null) {
soundPlayer = new Sound(sound.data, sound.type);
soundPlayer.setSoundListener(soundListener);
currentSound = null;
}
if (sound != currentSound) {
soundPlayer.release();
soundPlayer.init(sound.data, sound.type);
currentSound = sound;
}
soundPlayer.play(count);
}
catch (Exception ex) {
soundPlaying = false;
}
}
Sound[] soundPlayers;
public void playSound( EMSound sound[], int loc)
{
if (!soundEnable) { return; }
try {
if (soundPlaying) stopSound();
if (soundPlayers == null) {
soundPlayers = new Sound[sound.length];
System.out.println("Sounds == null");
for (int i=0; i<sound.length ; i++ ){
soundPlayers[i] = new Sound( sound[i].data, sound[i].type );
soundPlayers[i].setSoundListener( soundListener );
soundPlayers[i].init(sound[i].data, sound[i].type);
}
}
long now = System.currentTimeMillis();
soundPlayers[loc].play(1);
System.out.println("playing Sounds");
System.out.println("playing Sounds time"+(System.currentTimeMillis()-now) );
} catch(Exception ex) {
soundPlaying = false;
}
}
public void stopSound() {
if (!soundEnable) {
return;
}
if (soundPlayer != null) { //colico
soundPlayer.stop();
}
}
public boolean isSoundPlaying() {
return soundPlaying;
}
public boolean isSoundEnable() {
return soundEnable;
}
public void setSoundEnable(boolean e) {
if (!e) {
stopSound();
}
soundEnable = e;
}