Merge branch 'master' of github.com:jokerx3/prp

This commit is contained in:
andreas
2014-12-09 16:22:52 +01:00
4 changed files with 61 additions and 59 deletions
@@ -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);
}
}
}
+6 -1
View File
@@ -4,6 +4,11 @@ public class Main {
public static void main(String[] args) { public static void main(String[] args) {
Sound.BOMB.play(); SoundfileBomb b = new SoundfileBomb();
AudioPlayer p = new AudioPlayer();
p.play(b.getPath());
} }
} }
-58
View File
@@ -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();
}
}
}
@@ -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;
}
}