clip.setMicrosecondPosition не работает
Всем привет. У меня есть проблема. Я имею переменную типа long которая получает микросекунды clip. Она находиться в функции pause. То есть при работе функции она присваивает переменной микросекунды clip и останавливает его. Есть функция play которая при вызове срабатывает и устанавливает позицию и запускает проигрывание. Почему проигрывание начинается с начала?
Код:
static File file;
static FileInputStream fis;
static Clip clip;
static AudioInputStream ais;
static long clipms;
static JFileChooser chooser;
static void openfile() throws LineUnavailableException, IOException, UnsupportedAudioFileException {
chooser = new JFileChooser(System.getProperty("user.home"));
FileFilter filter = new FileNameExtensionFilter("WAV File", "wav");
chooser.setFileFilter(filter);
int a = chooser.showOpenDialog(chooser);
if(a == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
ais = AudioSystem.getAudioInputStream(file);
clip = AudioSystem.getClip();
clip.open(ais);
JOptionPane.showMessageDialog(null, "File opened");
}
static void play() throws FileNotFoundException{
SwingWorker<Void, Void> sworker = new SwingWorker<Void, Void>(){
@Override
protected Void doInBackground() throws Exception {
if(file != null) {
clip.setMicrosecondPosition(clipms);
clip.start();
}else if(file == null) {
openfile();
clip.start();
}
return null;
}
};
sworker.execute();
}
static void pause() {
long clipms = clip.getMicrosecondPosition();
System.out.println(clipms);
clip.stop();
}
}