Hi,
Habe mal wieder paar Fragen für euch. Um genau zu sein 2
Meine erste Frage:
Ich habe ein kleines Space Invaders programmiert und jetzt würde ich da gerne noch einen Sound abspielen, dass Spiel soll aber weiterlaufen. Daher dachte ich mir, dass ich das in einen Thread packe und den dann ablaufen lasse. Dabei kam jetzt folgendes raus:
Der Thread:
Und an der Stelle wo der Sound dann abgespielt werden soll, habe ich folgendes:
Der Sound wird auch abgespielt, aber während der Sound abgespielt wird, bleibt das Spiel einfach stehen und nachdem der Sound abgespielt wurde läuft alles weiter.
Dann noch mein 2. Problem:
Selbst wenn ich bei Ubuntu den Ton komplett ausmache, gibt Java den sound weiterhin bei voller lautstärke aus. Weiß einer von euch woran das liegen kann, bzw. wie ich das ändern kann?
Danke schonmal,
Dennis
Habe mal wieder paar Fragen für euch. Um genau zu sein 2
Meine erste Frage:
Ich habe ein kleines Space Invaders programmiert und jetzt würde ich da gerne noch einen Sound abspielen, dass Spiel soll aber weiterlaufen. Daher dachte ich mir, dass ich das in einen Thread packe und den dann ablaufen lasse. Dabei kam jetzt folgendes raus:
Der Thread:
Code:
package gameSound;
import java.io.*;
import javax.sound.sampled.*;
public class PlaySound extends Thread {
File file;
public PlaySound(File file) {
this.file = file;
}
public void run() {
AudioInputStream ais = null;
try{
ais = AudioSystem.getAudioInputStream(file);
}catch(IOException e) {
}catch(UnsupportedAudioFileException e) {
}
// Audioformat
AudioFormat format = ais.getFormat();
//Check convertion?
// Create clip
DataLine.Info info = new DataLine.Info(Clip.class,format,((int)ais.getFrameLength()*format.getFrameSize()));
Clip clip = null;
try{
clip = (Clip)AudioSystem.getLine(info);
clip.open(ais);
}catch(LineUnavailableException e) {
System.out.println(e.getMessage());
}catch(IOException e) {
}
// play
clip.start();
while(true) {
try{
Thread.sleep(100);
}catch(Exception e) {
}
if(!clip.isRunning()) {
break;
}
}
clip.stop();
clip.close();
}
}
Und an der Stelle wo der Sound dann abgespielt werden soll, habe ich folgendes:
Code:
PlaySound test = new PlaySound(new File("won.wav"));
test.run();
Der Sound wird auch abgespielt, aber während der Sound abgespielt wird, bleibt das Spiel einfach stehen und nachdem der Sound abgespielt wurde läuft alles weiter.
Dann noch mein 2. Problem:
Selbst wenn ich bei Ubuntu den Ton komplett ausmache, gibt Java den sound weiterhin bei voller lautstärke aus. Weiß einer von euch woran das liegen kann, bzw. wie ich das ändern kann?
Danke schonmal,
Dennis