Hi leutz.
ich hab da mal ne frage.
Ich will auf knopfdruck nen ton erzeugen...
also jedes mal wenn ich space drücke soll eine wav datei abgespielt werden.
hab da was im forum gefunden wie man wav dateien abspielt, doch das klappt immer nur 1 mal.
dann wird mein applet ganz langsam und es kommt nichts mehr.
habs auch schon versucht den clip gleich wieder zu stoppen.. aber das funzt auch nicht.
oder bin ich ich hier auf ner falschen fährte??
es soll einfach auf nen druck von der leertaste ein schuss zu hören sein..
natürlich muss des immer wieder gehen!!
Ich rufe in meiner Hauptklasse 1 mal Si9mpleSound auf um die Datei zu initialisieren,
und dann will ich nur noch die Methode shotSound aufrufen..
weiss jemand wie das geht??
ich hab da mal ne frage.
Ich will auf knopfdruck nen ton erzeugen...
also jedes mal wenn ich space drücke soll eine wav datei abgespielt werden.
hab da was im forum gefunden wie man wav dateien abspielt, doch das klappt immer nur 1 mal.
dann wird mein applet ganz langsam und es kommt nichts mehr.
Code:
import java.io.File;
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 javax.sound.sampled.FloatControl;
public class SimpleSound {
private static Clip clip;
public SimpleSound(){
initShoot();
}
public static void shotSound(){
clip.start();
}
private void initShoot() {
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(
"C:\\temp\\HEX_2K7_FX (3).wav"));
AudioFormat format = ais.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format,
((int) ais.getFrameLength() * format.getFrameSize()));
clip = (Clip) AudioSystem.getLine(info);
clip.open(ais);
FloatControl gainControl = (FloatControl) clip
.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(1.0F);
} catch (Exception e) {
e.printStackTrace();
}
}
}
habs auch schon versucht den clip gleich wieder zu stoppen.. aber das funzt auch nicht.
oder bin ich ich hier auf ner falschen fährte??
es soll einfach auf nen druck von der leertaste ein schuss zu hören sein..
natürlich muss des immer wieder gehen!!
Ich rufe in meiner Hauptklasse 1 mal Si9mpleSound auf um die Datei zu initialisieren,
und dann will ich nur noch die Methode shotSound aufrufen..
weiss jemand wie das geht??