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();
    }
}

Ответы (0 шт):