如果觉得只播放Mp3功能不够的话可以根据需要选择这种版本的:
代码:
import java.awt.Button;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.MediaLocator;
import javax.media.RealizeCompleteEvent;
import javax.media.bean.playerbean.MediaPlayer;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Mp3player extends JPanel implements ActionListener,ControllerListener{
Button b1,b2,b3;
MediaPlayer player;
static JFrame jf;
String dir,fstr,fName;
FileDialog fd;
static Mp3player mp3;
public static void main(String[] args) {
jf = new JFrame();
mp3 = new Mp3player();
jf.add(mp3);
mp3.init();
jf.setSize(300,100);
jf.setLocationRelativeTo(null);
jf.setResizable(false);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
public void init(){
setLayout(new FlowLayout());
b1 = new Button("播放");
b2 = new Button("停止");
b3 = new Button("打开MP3");
b1.setPreferredSize(new Dimension(70,30));
b2.setPreferredSize(new Dimension(70,30));
b3.setPreferredSize(new Dimension(70,30));
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
}
public void openMp3(){
dir = fd.getDirectory();
fName = fd.getFile();
fstr = dir + fName;
if(player == null){
player = new MediaPlayer();
}else{
closePreviousPlayer();
}
player.setMediaLocator(new MediaLocator("file:///"+fstr));
}
private void closePreviousPlayer() {
player.stop();
player.deallocate();
Component visual = player.getVisualComponent();
Component control = player.getControlPanelComponent();
if(visual!=null){
this.remove(visual);
}
if(control!=null){
this.remove(control);
}
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == b1){
//添加控制进度条
player.addControllerListener(this);
player.start();
}else if(e.getSource() == b2){
player.stop();
}else if(e.getSource() == b3){
fd = new FileDialog(jf,"选择MP3", FileDialog.LOAD);
fd.setVisible(true);
openMp3();
}
}
@Override
public void controllerUpdate(ControllerEvent arg0) {
if(arg0 instanceof RealizeCompleteEvent){
Component comp;
if((comp = player.getControlPanelComponent())!= null){
comp.setPreferredSize(new Dimension(300,30));
this.add(comp);
}else{
closePreviousPlayer();
}
if((comp = player.getVisualComponent())!=null){
comp.setPreferredSize(new Dimension(300,30));
this.add(comp);
}
validate();
}
}
}