JLayer - odtwarzanie mp3, jak zastopować piosenke? i mały problem z aktywnością gui

0

Witam
Poznaje JLayer własnie i chce napisac prosty program ktory odtwarza/stopuje wybrana piosenke.

Wiec wybieram tę piosenke JFileChooserem, dodaje ją do FileInputStream, potem w AdvancedPlayer dodaje ten stream. No i wywołuje na tym metode play() i sobie gra, jednakze:

  1. Jak muzyka gra, to cale gui jest zablokowane, dopoki muzyka sie nie skonczy. Probowalem wrzucic to do nowego wątku, ale nie wiem czy dobrze to robilem.
  2. Nie mam pojecia jak stopować muzyke. Niby AdvancedPlayer ma metode stop() ale ona nie zatrzymuje piosenki jak ją podepne np pod jakis przycisk. Jak jeszcze odtwarzanie piosenki działo się w osobnym wątku, to probowalem wywołać metode stop() na wątku, która jest wg API javy odrzucona, wiec to glupota. Szukalem juz na StacOverflow i wszedzie, wszedzie w googlach i cos nie moge :D Stad pytanie, jak zatrzymac piosenke?

KODU TROCHE:

private File plik;
	private AdvancedPlayer ap;
	private FileInputStream in;
	private Musik roz;
	private JButton but;
	private Thread watek;
	
	public Musik() throws FileNotFoundException, JavaLayerException, InterruptedException
	{
		setVisible(true);
		setSize(400,400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(null);
	
		but = new JButton("Stop");
		but.setBounds(20,20,100,30);
		but.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0)
			{
				ap.stop();
			}
		});
		add(but);
			
		
		
		JFileChooser wybor = new JFileChooser();
		Object ob = wybor.showOpenDialog(null);
		if(ob.equals(JFileChooser.APPROVE_OPTION))
		{
			plik = wybor.getSelectedFile();
		}
		else if(ob.equals(JFileChooser.CANCEL_OPTION))
		{
			JOptionPane.showMessageDialog(null, "Nie wybrano pliku.");
		}
		
		in = new FileInputStream(plik);
		ap = new AdvancedPlayer(in);
		ap.play();
	
	}
 

wiec pytanie brzmi, jak zrobić tak, zeby piosenka odtwarzała się, uzywanie programu było możliwe(nie zablokowane gui) i zebym mogl to zastopować?

pozdrawiam ;)

#edit
w razie co strona z jlayerem ;p
http://www.javazoom.net/javalayer/documents.html

podbijam, moze ktos wie?;)

0

Coś po paru miesiącach uściśliłeś w sprawie JLayera?

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