0
我有一個播放音頻文件的應用程序。 我的問題是,只允許我從當前音樂的位置暫停播放,但我想要暫停並繼續播放。到目前爲止,我無法做出改變。音頻暫停和播放另一個位置
我想從另一個位置移動滑塊,並能夠從軌道上的該位置播放音樂。
File juntos = new File("C:/juntos.wav");
if(controlPlay){
//Sliderprogreso is bar Slider
Sliprogreso.setEnabled(true);
controlReproducir=true;
Btngrabar.setEnabled(false);
Btnguardar.setEnabled(false);
Btnplay.setText("Pause");
try {
AudioInputStream stream;
AudioFormat format;
DataLine.Info info;
stream = AudioSystem.getAudioInputStream(juntos);
format = stream.getFormat();
frames =stream.getFrameLength();
durationInSeconds = (frames+0.0)/format.getFrameRate();
System.out.println("duracion:"+durationInSeconds);
Sliprogreso.setMaximum((int) durationInSeconds);
info = new DataLine.Info(Clip.class, format);
clip = (Clip) AudioSystem.getLine(info);
clip.open(stream);
clip.start();
controlPlay=false;
TimerTask timerTask=new TimerTask(){
public synchronized void run() {
{
double timeNow=(durationInSeconds*clip.getFramePosition())/frames;
System.out.println("frames:"+frames);
System.out.println("clipframe:"+clip.getFramePosition());
System.out.println("time now");
Sliprogreso.setValue((int)Math.round(timeNow));
if((int)Math.round(timeNow)==(int)durationInSeconds){
System.out.println("se cancelo");
this.cancel();
Btnplay.setText("Play");
Btngrabar.setEnabled(true);
Btnguardar.setEnabled(true);
controlPlay=true;
}
}
}
};
timer.scheduleAtFixedRate(timerTask, 30, 30);
}
catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
else{
clip.stop();
timer.cancel();
Btnplay.setText("Play");
controlPlay=true;
Btngrabar.setEnabled(true);
Btnguardar.setEnabled(true);
}
你可以格式化你的代碼並使用一些縮進嗎?這是不可讀的。 – 2015-01-29 14:48:05