Hi Leute,
nach zahlreichen Tutorials habe ich nun folgendes Programm gebastelt.
ich würde da gerne mehrere Sounds je nach aufruf wiedergeben, aber genau das geht leider nicht :-(
Es ist immer nach dem ersten Sound Schluss.... (_awful und das sind integerwerte aus dem Interface)
nach zahlreichen Tutorials habe ich nun folgendes Programm gebastelt.
ich würde da gerne mehrere Sounds je nach aufruf wiedergeben, aber genau das geht leider nicht :-(
Es ist immer nach dem ersten Sound Schluss.... (_awful und das sind integerwerte aus dem Interface)
Java:
package sound;
import java.io.InputStream;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import org.apache.log4j.Logger;
public class Sound implements SoundList {
Logger logger = Logger.getLogger(Sound.class);
ClassLoader classLoader = getClass().getClassLoader();
private InputStream fi;
public void makeSound(int sound){
if (sound==_awful){
fi = classLoader.getResourceAsStream("sound/awful.wav");
}
else if (sound==_awh_man){
fi = classLoader.getResourceAsStream("sound/awh_man.wav");
}
else if (sound==_boing){
fi = classLoader.getResourceAsStream("sound/boing.wav");
}
else if (sound==_burp){
fi = classLoader.getResourceAsStream("sound/burp.wav");
}
else if (sound==_excuse_me){
fi = classLoader.getResourceAsStream("sound/excuse_me.wav");
}
else if (sound==_hiho){
fi = classLoader.getResourceAsStream("sound/hiho.wav");
}
else if (sound==_nein){
fi = classLoader.getResourceAsStream("sound/nein.wav");
}
else if (sound==_soundgood){
fi = classLoader.getResourceAsStream("sound/soundgood.wav");
}
else if (sound==_troubles){
fi = classLoader.getResourceAsStream("sound/troubles.wav");
}
try{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(fi);
AudioFormat af = audioInputStream.getFormat();
int size = (int) (af.getFrameSize() * audioInputStream.getFrameLength());
byte[] audio = new byte[size];
DataLine.Info info = new DataLine.Info(Clip.class, af, size);
audioInputStream.read(audio, 0, size);
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(af, audio, 0, size);
System.out.println("------------->start musik");
clip.start();
while (clip.isActive()){
}
clip.stop();
clip.close();
}
catch (Exception e){
logger.warn(e);
}
}
public static void main(String[] args){
System.out.println("hi");
Sound sound = new Sound();
//sound.makeSound(_awh_man);
sound.makeSound(_awful);
System.out.println("sound1");
sound.makeSound(_soundgood);
System.out.println("sound1");
sound.makeSound(_boing);
System.out.println("sound1");
sound.makeSound(_burp);
sound.makeSound(_excuse_me);
sound.makeSound(_hiho);
sound.makeSound(_nein);
sound.makeSound(_troubles);
}
}