diff --git a/HeatUp/src/de/heatup/audio/Main.java b/HeatUp/src/de/heatup/audio/Main.java index 3c3f052..2282518 100644 --- a/HeatUp/src/de/heatup/audio/Main.java +++ b/HeatUp/src/de/heatup/audio/Main.java @@ -3,9 +3,7 @@ package de.heatup.audio; public class Main { public static void main(String[] args) { - //new WavePlayer("").start(); - //new WavePlayer("audiosample.wav").start(); - Sound.SAMPLE.play(); + Sound.BOMB.play(); } } diff --git a/HeatUp/src/de/heatup/audio/Sound.java b/HeatUp/src/de/heatup/audio/Sound.java index ff5fbaa..4beda07 100644 --- a/HeatUp/src/de/heatup/audio/Sound.java +++ b/HeatUp/src/de/heatup/audio/Sound.java @@ -1,10 +1,58 @@ package de.heatup.audio; -import java.applet.Applet; -import java.applet.AudioClip; +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 class Sound { - public static final AudioClip SAMPLE = Applet.newAudioClip(Sound.class.getResource("audiosample.wav")); -} +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/WavePlayer.java b/HeatUp/src/de/heatup/audio/WavePlayer.java deleted file mode 100644 index d9dd913..0000000 --- a/HeatUp/src/de/heatup/audio/WavePlayer.java +++ /dev/null @@ -1,114 +0,0 @@ -package de.heatup.audio; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.IOException; - -import javax.sound.sampled.AudioFormat; -import javax.sound.sampled.AudioInputStream; -import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.DataLine; -import javax.sound.sampled.FloatControl; -import javax.sound.sampled.LineUnavailableException; -import javax.sound.sampled.SourceDataLine; -import javax.sound.sampled.UnsupportedAudioFileException; - -public class WavePlayer extends Thread { - - private String filename; - private Position curPosition; - //private File soundFile; - - private final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb - - enum Position { - LEFT, RIGHT, NORMAL - }; - - public WavePlayer(String wavfile) { - filename = wavfile; - curPosition = Position.NORMAL; - } - - public WavePlayer(String wavfile, Position p) { - filename = wavfile; - curPosition = p; - } - - //public WavePlayer(File soundFile) { - //this.soundFile = soundFile; - //} - - public void run() { - - /** - File soundFile = new File(filename); - if (!soundFile.exists()) { - System.err.println("Wave file not found: " + filename); - return; - } */ - - AudioInputStream audioInputStream = null; - try { - //audioInputStream = AudioSystem.getAudioInputStream(soundFile); - String path = "/resources/audio/" + filename; - File f = new File(path); - if(!f.exists()) { - System.err.println("File not found: " + path); - return; - } - - audioInputStream = AudioSystem.getAudioInputStream(new BufferedInputStream(getClass().getResourceAsStream(path))); - } catch (UnsupportedAudioFileException e1) { - e1.printStackTrace(); - return; - } catch (IOException e1) { - e1.printStackTrace(); - return; - } - - AudioFormat format = audioInputStream.getFormat(); - SourceDataLine auline = null; - DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); - - try { - auline = (SourceDataLine) AudioSystem.getLine(info); - auline.open(format); - } catch (LineUnavailableException e) { - e.printStackTrace(); - return; - } catch (Exception e) { - e.printStackTrace(); - return; - } - - if (auline.isControlSupported(FloatControl.Type.PAN)) { - FloatControl pan = (FloatControl) auline - .getControl(FloatControl.Type.PAN); - if (curPosition == Position.RIGHT) - pan.setValue(1.0f); - else if (curPosition == Position.LEFT) - pan.setValue(-1.0f); - } - - auline.start(); - int nBytesRead = 0; - byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; - - try { - while (nBytesRead != -1) { - nBytesRead = audioInputStream.read(abData, 0, abData.length); - if (nBytesRead >= 0) - auline.write(abData, 0, nBytesRead); - } - } catch (IOException e) { - e.printStackTrace(); - return; - } finally { - auline.drain(); - auline.close(); - } - - } -} - \ No newline at end of file diff --git a/HeatUp/src/de/heatup/audio/audiosample.wav b/HeatUp/src/de/heatup/audio/audiosample.wav deleted file mode 100644 index bf7fc00..0000000 Binary files a/HeatUp/src/de/heatup/audio/audiosample.wav and /dev/null differ diff --git a/HeatUp/src/de/heatup/resources/audio/bomb.wav b/HeatUp/src/de/heatup/resources/audio/bomb.wav new file mode 100644 index 0000000..5f1d2b5 Binary files /dev/null and b/HeatUp/src/de/heatup/resources/audio/bomb.wav differ