diff --git a/HeatUp/src/de/heatup/audio/AudioPlayer.java b/HeatUp/src/de/heatup/audio/AudioPlayer.java new file mode 100644 index 0000000..7ac04bc --- /dev/null +++ b/HeatUp/src/de/heatup/audio/AudioPlayer.java @@ -0,0 +1,39 @@ +package de.heatup.audio; + +import java.io.File; + +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.Clip; +import javax.sound.sampled.Line; +import javax.sound.sampled.LineEvent; +import javax.sound.sampled.LineListener; + +public class AudioPlayer { + + public AudioPlayer(/** String file */) { + ///this.file = file; + } + + public void play(String file) { + + try { + final Clip clip = (Clip)AudioSystem.getLine(new Line.Info(Clip.class)); + clip.addLineListener(new LineListener() { + + @Override + public void update(LineEvent event) { + if(event.getType() == LineEvent.Type.STOP) + clip.close(); + } + }); + + clip.open(AudioSystem.getAudioInputStream(new File(file))); + clip.start(); + + } catch (Exception e) { + e.printStackTrace(System.out); + } + + } + +} diff --git a/HeatUp/src/de/heatup/audio/Main.java b/HeatUp/src/de/heatup/audio/Main.java index 2282518..250dcef 100644 --- a/HeatUp/src/de/heatup/audio/Main.java +++ b/HeatUp/src/de/heatup/audio/Main.java @@ -4,6 +4,12 @@ public class Main { public static void main(String[] args) { - Sound.BOMB.play(); + SoundfileBomb b = new SoundfileBomb(); + + //Sound s = new Sound(b.getPath()); + //s.play(); + + AudioPlayer p = new AudioPlayer(); + p.play(b.getPath()); } } diff --git a/HeatUp/src/de/heatup/audio/Sound.java b/HeatUp/src/de/heatup/audio/Sound.java index 4beda07..4a3ef83 100644 --- a/HeatUp/src/de/heatup/audio/Sound.java +++ b/HeatUp/src/de/heatup/audio/Sound.java @@ -10,8 +10,7 @@ import javax.sound.sampled.Line; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; -public enum Sound { - BOMB("src/de/heatup/resources/audio/" + "bomb.wav"); +public class Sound { private Clip clip; @@ -45,14 +44,10 @@ public enum Sound { } public void play() { - try { - new Thread() { - public void run() { - clip.start(); - } - }.start(); - } catch(Throwable e) { + try { + clip.start(); + } catch (Exception e) { e.printStackTrace(); } - } + } } \ No newline at end of file diff --git a/HeatUp/src/de/heatup/audio/SoundfileBomb.java b/HeatUp/src/de/heatup/audio/SoundfileBomb.java new file mode 100644 index 0000000..982443e --- /dev/null +++ b/HeatUp/src/de/heatup/audio/SoundfileBomb.java @@ -0,0 +1,14 @@ +package de.heatup.audio; + +public class SoundfileBomb { + private String path; + + public SoundfileBomb() { + this.path = "src/de/heatup/resources/audio/" + "bomb.wav"; + } + + public String getPath() { + return this.path; + } + +}