Hi,
ich hab das Problem dass wenn ich eine wav datei abspiele mir die GUI einfriert. So dass ich nicht mehr die Möglichkeit habe das abspielen zu stoppen. Mir ist bewusst, dass ich das ganze mit einem Thread lösen könnte, aber das genaue wie bereitet mir noch probleme.
Die Methode die meinen Player aufruft sieht folgendermaßen aus
if(label.equals("play")){
player = new Player();
player.start();
}
if (label.equals("stop")){
player.playerStop();
player = null;
}
Die Klasse Player sieht so aus
public class Player extends Thread{
private AudioInputStream in = null;
private SourceDataLine line = null;
public Player(){
try{
in = AudioSystem.getAudioInputStream(new
URL(MainFrame.path));
}catch (Exception d){
d.printStackTrace();
}
AudioFormat format = in.getFormat();
DataLine.Info info = new
DataLine.Info(SourceDataLine.class,format);
try {
line = (SourceDataLine)AudioSystem.getLine(info);
line.open(format);
}catch (Exception e) {
System.exit(-2);
}
}
public void start(){
int readBytes =0;
byte[] data = new byte[10000];
line.start();
do{
try {
readBytes = in.read(data,0,data.length);
}catch (Exception e){
System.exit(-3);
}
if (readBytes!=-1) line.write(data, 0, readBytes);
} while (readBytes != -1);
//line.drain();
}
public void playerStop(){
line.close();
}
}
Wie kann ich es hinbekommen dass trotz spielen einer Datei, ich weiterhin auf andere Elemente in meiner GUI zugreifen kann.
Danke schon mal im Voraus.
Grüße
Nick