franksisca
05-11-2005, 17:07
Ragazzi, io in un thread avvio un file audio, mentre se premo un pulsante non funziona. il codice è questo:
private void avviaMusica(){
try{
this.file=new File("digitalClock/bell.wav");
this.ais=AudioSystem.getAudioInputStream(file);
this.audioformat=ais.getFormat();
this.info = new DataLine.Info(SourceDataLine.class,audioformat);
this.line=(SourceDataLine) AudioSystem.getLine(info);
line.open(audioformat);
line.start();
copyStream(ais,line);
line.drain();
line.close();
}
catch(Exception e){e.printStackTrace();}
}
private void copyStream(AudioInputStream ais, SourceDataLine line) {
// TODO Auto-generated method stub
try{
int buffer =128000;
byte []buf=new byte [buffer];
while(true){
int read=ais.read(buf);
if(read==-1)break;
line.write(buf,0,read);
}
}
catch(Exception e){e.printStackTrace();}
}
naturalmente le variabili sono:
private File file;
private AudioInputStream ais;
private AudioFormat audioformat;
private DataLine.Info info;
private SourceDataLine line;
mi dite perchè non riesco a stopparlo????
e mi dite come farlo.
private void avviaMusica(){
try{
this.file=new File("digitalClock/bell.wav");
this.ais=AudioSystem.getAudioInputStream(file);
this.audioformat=ais.getFormat();
this.info = new DataLine.Info(SourceDataLine.class,audioformat);
this.line=(SourceDataLine) AudioSystem.getLine(info);
line.open(audioformat);
line.start();
copyStream(ais,line);
line.drain();
line.close();
}
catch(Exception e){e.printStackTrace();}
}
private void copyStream(AudioInputStream ais, SourceDataLine line) {
// TODO Auto-generated method stub
try{
int buffer =128000;
byte []buf=new byte [buffer];
while(true){
int read=ais.read(buf);
if(read==-1)break;
line.write(buf,0,read);
}
}
catch(Exception e){e.printStackTrace();}
}
naturalmente le variabili sono:
private File file;
private AudioInputStream ais;
private AudioFormat audioformat;
private DataLine.Info info;
private SourceDataLine line;
mi dite perchè non riesco a stopparlo????
e mi dite come farlo.