eclipse开发的音乐播放器,利用了JMF包,实现播放,暂停,继续播放,停止功能,有播放列表,能自己选择播放哪个目录下的文件,加入了文件筛选器,会自动将该目录下支持的所有音频文件取出,形成播放列表
/* * 程序操作说明: * 点击菜单“文件”,选择“打开”选定在某目录下程序会将所有支持的音频文件取出,放在播放列表中,用鼠标双击文件开始播放或点击文件选择在点击播放按钮,点击暂停,暂停播放,在点击播放会继续播放 * 点击停止会停止播放按钮,点击关闭按钮会关闭程序 * 本程序支持的音频格式有au.wav.midi.rfm.aiff.MP3.mp2,本程序利用了JMF包, * 运行前请下载jmf-2_1_1e-windows-i586.exe, 下载地址链接:http://删除pan.baidu.com/s/1pJjqN71 密码:pz58 安装,如出现 访问限制由于对必需的库XX具有一定限制,因此无法访问类型,请按如下办法解决 在项目上点击右键,找到构建路径。然后选择配置配置路径。按如下步骤来配置: 1 点击库选项 2把系统库扩展开来 3点击访问规则 4编辑访问规则 5 分辨率设为可访问 6规则模式设为** 7选择ok按钮 程序的基本结构: text()为text类的构造函数,由它通过调用GUIInit函数完成界面的设计,而actionPerformed函数实现大部分程序功能。 GUIInit函数中的匿名类会完成鼠标单双击事件 */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import javax.media.*; public class finalMidClass { public static void main(String args[]) { text MainInterface= new text(); } } class text extends JFrame implements ActionListener { JPanel panel,panel1,panel2; JMenuBar menubar; JMenu menu1,menu2; JMenuItem itemOpen,item2; JButton playbutton,Pausebutton,Stopbutton,contbutton; JLabel label1,label2,label3,label4; List PlayList; String filepath; //播放文件目录 String fildname; //文件名 String fild; boolean isplaying=false; boolean ispause =false; Player player; public text() { setTitle(" kavs player"); setLayout(new GridLayout(2,1)); GUIInit(); setBounds(320,120,355,450); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //完成界面的设计 void GUIInit () { panel=new JPanel(); panel1=new JPanel(); panel2=new JPanel(); label1=new JLabel(" written by peeramog "); label1.setHorizontalAlignment(SwingConstants.CENTER); label2=new JLabel("播放目录"); label3=new JLabel("播放列表"); label3.setHorizontalAlignment(SwingConstants.CENTER); menubar =new JMenuBar(); menu1=new JMenu("文件 "); menu2=new JMenu("帮助 "); itemOpen=new JMenuItem("打开"); menu1.add(itemOpen); itemOpen.addActionListener(this); menubar.add(menu1); menubar.add(menu2); setJMenuBar(menubar); panel.add(label2); playbutton =new JButton("播放"); Pausebutton =new JButton("暂停"); Stopbutton =new JButton("停止"); playbutton.addActionListener(this); Pausebutton.addActionListener(this); Stopbutton.addActionListener(this); panel1.add(Pausebutton); panel1.add(playbutton); panel1.add(Stopbutton); panel.setSize(getPreferredSize()); panel.setBounds(30,30,355,200); panel.setBackground(Color.green); panel.setLayout(new BorderLayout()); panel.add(panel1,BorderLayout.CENTER); panel.add(label1,BorderLayout.NORTH); panel.add(label3,BorderLayout.SOUTH); add(panel); panel2.setBackground(Color.black); panel2.setLayout(new BorderLayout()); PlayList =new List(10); panel2.add(PlayList,BorderLayout.CENTER); add(panel2); validate(); PlayList.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if(e.getClickCount()==1) { //单击时处理 fildname = PlayList.getSelectedItem(); } if (e.getClickCount()==2) { //双击时处理 //播放选中的文件 if(isplaying==true) { player.stop(); player.setMediaTime(new Time(0)); } fild = PlayList.getSelectedItem(); testplaying(); readerfile(); player.start(); isplaying=true; } } }); } // // 以下完成事件的处理 public void actionPerformed(ActionEvent e) { if(e.getSource()==itemOpen) { FileDialog fd = new FileDialog(this, "打开媒体文件", FileDialog.LOAD); fd.setVisible(true); if (fd.getFile() == null) { return; } // 保存了所选文件的名称及其路径名称 // 同时设置当前文件夹路径 fildname = fd.getFile(); filepath=fd.getDirectory(); if (filepath!=null) { label2.setText("播放目录:" + fildname); //显示文件列表 PlayList.removeAll(); File filedir = new File(filepath); File[] filelist = filedir.listFiles(); for (File Sfile : filelist) { fild = Sfile.getName().toLowerCase(); if (fild.endsWith(".mp3")|| fild.endsWith(".wav")||fild.endsWith(".mid")||fild.endsWith(".au")||fild.endsWith(".midi")||fild.endsWith(".rfm")||fild.endsWith(".mp2")) { PlayList.add(fild); } } } } if(e.getSource()==playbutton) { if (player!=null) { fild = PlayList.getSelectedItem(); if(ispause==true) { player.start(); ispause=false; } else { testplaying(); readerfile(); player.start(); } isplaying=true; } if (player==null) { readerfile(); player.start(); isplaying=true; } return; } if(e.getSource()==Pausebutton) { if (player != null) { ispause=true; player.stop(); } return; } if(e.getSource()==Stopbutton) { if (player != null) { player.stop(); player.setMediaTime(new Time(0)); } return; } } public void readerfile() { try { fild= filepath+fildname; player = Manager.createPlayer(new MediaLocator("file:" +fild)); } catch(Exception e1) { System.out.println(e1); return; } } public void testplaying() { if(isplaying==true){ player.stop(); player.setMediaTime(new Time(0)); isplaying=false; } } }
界面如下