Hallo
Ich versuche mich gerade an einem kleine Spiel. Ich diesem bewegen sich Figuren. Sobald diese einen Schritt machen, wird eine Sounddatei abgespielt. Jetzt kann es aber vorkommen, dass die Figur sich so schnell bewegt, dass der Sound noch nicht zu Ende gespielt ist. Dann bricht er ab und der neue beginnt abzuspielen.
Damit dieses nicht mehr geschehen kann, möchte ich den Clip in Thread packen.
Soweit so gut. Die Thread werden erstellt, der Sound ist zu hören. Allerdings wird ja nur eine Referenz auf den Clip übergeben und dadurch wird schlussendlich immer der gleiche Clip abgespielt. Daher kann es immer noch vorkommen, dass der Clip unterbrochen wird wenn die Figur schnell geht.
Ich dachte mit clip.clone() könnte ich mir jetzt behelfen. Leider besitzt clip diese Methode nicht.
Was könnte ich also noch tun?
Ich versuche mich gerade an einem kleine Spiel. Ich diesem bewegen sich Figuren. Sobald diese einen Schritt machen, wird eine Sounddatei abgespielt. Jetzt kann es aber vorkommen, dass die Figur sich so schnell bewegt, dass der Sound noch nicht zu Ende gespielt ist. Dann bricht er ab und der neue beginnt abzuspielen.
Damit dieses nicht mehr geschehen kann, möchte ich den Clip in Thread packen.
Java:
public void move() {
Sound soundFx = new Sound(clip));
soundFx.start();
}
Java:
public class Sound extends Thread {
private Clip clip = null;
public Sound(Clip clip) {
this.clip = clip;
}
public Sound() {
}
public void run() {
clip.setFramePosition(0);
clip.start();
}
}
Soweit so gut. Die Thread werden erstellt, der Sound ist zu hören. Allerdings wird ja nur eine Referenz auf den Clip übergeben und dadurch wird schlussendlich immer der gleiche Clip abgespielt. Daher kann es immer noch vorkommen, dass der Clip unterbrochen wird wenn die Figur schnell geht.
Ich dachte mit clip.clone() könnte ich mir jetzt behelfen. Leider besitzt clip diese Methode nicht.
Was könnte ich also noch tun?