【原创】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
- 【原创】JAVA开发的小音乐播放器
- 小的音乐播放器
- 【Android开发】音乐播放器的小例子
- 音乐播放器的开发
- Android 音乐播放器的开发教程(六)service的运用及音乐列表点击播放 ----- 小达
- Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发 ---- 小达
- applet小程序 和 java程序 的音乐播放器(只限midi文件播放)
- 音乐播放器开发
- Android 音乐播放器的开发教程(五)本地音乐的获取及显示 ----- 小达
- win32API 开发的音乐播放器
- android音乐播放器的开发实例
- Android 音乐播放器的开发教程(九) 歌词的显示----- 小达
- Android 音乐播放器的开发教程(十)通知栏Notification的使用 ----- 小达
- Java swing实现音乐播放器之Java开发图形界面程序音乐播放器仿酷狗音乐播放器
- Android 音乐播放器的开发教程(一) ----- 小达
- Android 音乐播放器的开发教程(二)反编译apk ----- 小达
- Android 音乐播放器的开发教程(十一)SQLite的使用及最近播放的实现 ----- 小达
- java音乐播放器
- 说太多不如沉默 想太多我会难过
- C++遍历文件夹下所有文件
- 柯美打印机资料整理
- 黑马程序员_函数,值传递和指针传递区别,转义字符,格式字符
- Web 开发人员必备的12款 Chrome 扩展程序
- 【原创】JAVA开发的小音乐播放器
- 用PersonalRank实现基于图的推荐算法
- 黑马程序员-装饰类
- xend-xl-libvirt
- 如果你等待,唯一发生的只有你变老。
- javascript代码复用模式-----传统继承
- 解决SecureCRT中文版“数据库里没找到防火墙‘无’”的错误提示
- 黑马程序员-线程(2)
- jsp获取服务端的访问信息