diff --git a/HeatUp/src/de/heatup/audio/AudioPlayer.java b/HeatUp/src/de/heatup/audio/AudioPlayer.java new file mode 100644 index 0000000..98c14a8 --- /dev/null +++ b/HeatUp/src/de/heatup/audio/AudioPlayer.java @@ -0,0 +1,41 @@ +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() {} + + 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(); + } + }); + + File f = new File(file); + if(!f.exists()) { + System.out.println("File not found: " + f.getAbsolutePath()); + return; + } + + clip.open(AudioSystem.getAudioInputStream(f)); + 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..f69a460 100644 --- a/HeatUp/src/de/heatup/audio/Main.java +++ b/HeatUp/src/de/heatup/audio/Main.java @@ -4,6 +4,11 @@ public class Main { public static void main(String[] args) { - Sound.BOMB.play(); + SoundfileBomb b = new SoundfileBomb(); + + 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 deleted file mode 100644 index 4beda07..0000000 --- a/HeatUp/src/de/heatup/audio/Sound.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.heatup.audio; - -import java.io.File; -import java.io.IOException; - -import javax.sound.sampled.AudioInputStream; -import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.Clip; -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"); - - private Clip clip; - - Sound(String soundFileName) { - - File f = new File(soundFileName); - if(!f.exists()) { - System.err.println("File not found : " + f.getAbsolutePath()); - return; - } - - try { - - Line.Info linfo = new Line.Info(Clip.class); - Line line = AudioSystem.getLine(linfo); - - clip = (Clip) line; - AudioInputStream inputStream = AudioSystem.getAudioInputStream(f); - - clip.open(inputStream); - - } catch(UnsupportedAudioFileException e) { - e.printStackTrace(); - } catch(IOException e) { - e.printStackTrace(); - } catch(LineUnavailableException e) { - e.printStackTrace(); - } catch(Exception e) { - e.printStackTrace(); - } - } - - public void play() { - try { - new Thread() { - public void run() { - clip.start(); - } - }.start(); - } catch(Throwable 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; + } + +}