Odtwarzanie dźwięku z pliku wav.

0

Program ma odtwarzać dźwięki wav. Problem polega na tym że jeżeli wybiorę krótki plik (2 sekundy), dźwięk zostaje bezproblemu odtworzony. Ale przy innych dłuższych dźwiękach program kończy sie po ok. 2 sekundach i odtwarzanie się zatrzymuje. Sprawdzałem na kilku plikach i zawsze jest tak samo. Proszę o pomoc :)
Oto kod:

import java.io.IOException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JFileChooser;

public class Troll {

    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
        JFileChooser fc = new JFileChooser();
        int i = fc.showOpenDialog(null);
        if (i == JFileChooser.APPROVE_OPTION) {
            Clip clip = AudioSystem.getClip();
            AudioInputStream inStream = AudioSystem.getAudioInputStream(fc.getSelectedFile());

            clip.open(inStream);
            clip.start();

        }

    }

}
0

Kończy się wykonywanie programu, zrób to samo w programie z GUI.

0

Zapytam jeszcze z ciekawości, jak zrobić żeby ten program który mam po prostu poczekał na zakończenie odtwarzanie i dopiero wtedy się skończył?

1

Daj programowi jakieś zajęcie, albo każ mu się zdrzemnąć.

            clip.start();
            try
            {
                Thread.sleep(120000);
            }
            catch (InterruptedException e)
            {
            }

Powyższy kod odtworzy 2 minuty, a poniższy całość

            clip.start();
            Timer timer = new Timer(0,new ActionListener()
            {
                public void actionPerformed(ActionEvent ae)
                {
                    if(!clip.isRunning())
                    {
                        System.exit(0);
                    }
                }
            });
            timer.setDelay(100); 
            timer.start();

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0