Witam, chciałem napisać prosty program do odtwarzania plików mp3. Mam problem z poprawnym działaniem mojego programu gdyż, po naciśnięciu przycisku "Play" nic już nie da sie zrobić tzn. nie da się kliknąć żadnego innego przycisku. Jeśli ktoś mógłby mi doradzić jak z tym sobie poradzić byłbym ogromnie wdzięczny. Pozdrawiam
Tutaj jest kod Mp3Playera:
package com.hubberspot.example;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import javazoom.jl.player.Player;
public class Mp3Player {
private String filename;
private Player player;
public Mp3Player(String filename)
{
this.filename = filename;
}
public void play()
{
try
{
BufferedInputStream buffer = new BufferedInputStream(new FileInputStream(filename));
player = new Player(buffer);
player.play();
}
catch (Exception e)
{
System.out.println(e);
}
}
}
a tutaj kod ramki:
package com.hubberspot.example;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Ramka extends JFrame
{
private JPanel contentPane;
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
Ramka frame = new Ramka();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
private JButton btnPlay, btnStop;
Mp3Player mp3 = new Mp3Player("C:\\Documents and Settings\\dell\\Moje dokumenty\\Downloads\\song.mp3");
public Ramka()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
btnPlay = new JButton("Play");
btnPlay.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
mp3.play();
}
});
btnPlay.setBounds(155, 127, 89, 23);
contentPane.add(btnPlay);
btnStop = new JButton("Stop");
btnStop.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
dispose();
}
});
btnStop.setBounds(155, 161, 89, 23);
contentPane.add(btnStop);
}
}