【原创】JAVA开发的小音乐播放器

来源:互联网 发布:java获取ip访问次数 编辑:程序博客网 时间:2024/06/04 20:08


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;     }    } }

界面如下

0 0