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
Die Klasse Player sieht so aus
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
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
Code:
if(label.equals("play")){
player = new Player();
player.start();
}
if (label.equals("stop")){
player.playerStop();
player = null;
}
Die Klasse Player sieht so aus
Code:
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