MP3音乐播放器课程设计_第1页
MP3音乐播放器课程设计_第2页
MP3音乐播放器课程设计_第3页
MP3音乐播放器课程设计_第4页
MP3音乐播放器课程设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java程序设计课程设计说明书简单音乐播放器起止日期: 2011年12月6日 至 2012年 1月 4日学生姓名XXX班级软件工程093班学号成绩指导教师计算机与通信学院2011年 12 月28日目录 一、绪论11.1 课题背景11.2 课程设计目的11.4 课程设计实验环境11.5 课程设计要求1二、课程系统分析32.1 系统分析32.1 功能分析3三、系统设计43.1 系统功能结构图43.2 模块功能设计43.2.1处理“添加”按钮43.2.2处理“播放”按钮43.2.3 处理“停止”按钮43.2.4 处理“单曲循环”按钮5四、系统实现64.1 系统主界面的实现64.2 系统主要功能实现6

2、4.2.1系统主界面及关键代码:64.2.2添加文件的界面和代码:94.2.3 播放音乐的界面和代码:114.2.4 单曲循环的界面和代码:12五、设计总结155.1 设计体会及评价15参考文献16致 谢17一、绪论1.1 课题背景随着社会电子音乐文件的与日俱增,作为现在最流行的音乐文件*.mp3,*.wav文件的数量和规模也在比以往的任何时候要多,不论是电台DJ需要使用方便而有效地管理自己所使用的音乐文件,还是个人。在计算机日益普及的今天,若采用一套有效的音乐播放器。将自己所收藏的大量的音乐文件能随时随地的播放,这将方便于众用户听音乐的需求。通过使用本音乐播放器能为音乐爱好者带来意想不到的收

3、获。1.2 课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.4 课程设计实验环境程序运行在安装有windows操作系统的计算机上(台式机和笔记本),兼容windows 2K/XP/Vista/7计算机硬件

4、要求:1. CPU:1G;2. 内存:512M. ;3. 显卡:256M显存;文件播放:需要安装有声卡、要求安装有语音库。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.5 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行

5、分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。二、课程系统分析2.1 系统分析2.2.1程序界面布局设计(1) 创建一个对话框类,类名为music类。(2) 向对话框中添加JSlider控件、JList控件以及按钮控件。(3) 设置所添加的控件的属性。系统界面的运行结果图如图2-1所示:图2-12.1 功能分析MP3播放器主要对常用Windows音频格式的文件实现播放控制:u 播放歌曲;u 单曲循环;u 停止播放;u 添加音乐文件;u 删除文件;u 实现音频播放的进度;u 修改音乐文件;三、系统设计3.1 系统功能结构图音乐文件

6、播放器的功能结构图如图3-1所示:图3-13.2 模块功能设计3.2.1处理“添加”按钮单击“添加”按钮后,在setFileSelectionMode()函数中,首先对文件类型进行过滤,调用accept()函数打开对话框选择一个媒体文件,通过GetPathName()函数获取文件路径,通过GetFileName()函数获取文件名后,调用GetDlgItem()函数设置“暂停”按钮以及“停止”按钮不可用。3.2.2处理“播放”按钮单击“播放”按钮后,在OnButtonPlay()函数中,通过调用MCIMP3类的MCIOpen()函数获取刚才选择的文件路径以及文件名,调用该类的MCIPlay()函

7、数播放歌曲,此时调用DisplayInfo()函数在Static Text控件上显示“正在播放的歌曲是(文件名)”,进行歌曲的播放,然后利用GetDlgItem()函数设置“播放”按钮不可用。3.2.3 处理“停止”按钮单击“停止”按钮后,在OnButtonStop()函数中,首先通过调用MCIMP3类的MCIPause()函数停止正在播放的歌曲,然后调用DisplayInfo()函数在Static Text控件上显示“停止播放歌曲(文件名)”,将停止正在播放歌曲,利用GetDlgItem()函数设置“停止”按钮不可用。3.2.4 处理“单曲循环”按钮单击“单曲循环”按钮后在Applet类中调

8、用newAudioClip()并将选择的音乐文件的文件地址和文件名以参数形式传给newAudioClip()中。从面而实现单曲循环的功能。四、系统实现4.1 系统主界面的实现 界面是保证系统正常运行的一个重要因素,通过以上系统分析和功能分析系统的最终界面如图4-1所示:图4-14.2 系统主要功能实现 4.2.1系统主界面及关键代码:下面为简单音乐播放器的主界面如图4-2所示:图4-2程序主界面 简单音乐播放器主界面的代码如下:public JLabel shijian;private JSlider sldDiameter;/private JSlider sldYingliang;publ

9、ic AudioClip soumd1;public JButton playSound, loopSound, stopsound;public JButton tjian, shanc, baocun, duqu;public JPanel jp1, jp2, jp3, jp4;public JList jl;public Vector vector, mingcheng;boolean fo = false;JLabel jl1, jl2, sj1, sj2;JTextField jt1, jt2;JButton queding, xiugai;int zong = 0;int a =

10、0, b = 0, you = 0;int fenzhong, miaozhong;public music() super(java简单音乐播放器); Container c = getContentPane(); c.setLayout(new FlowLayout(); mingcheng = new Vector(); jp1 = new JPanel(); shijian = new JLabel(); jp1.add(shijian); c.add(jp1); playSound = new JButton(开始播放); loopSound = new JButton(单曲循环);

11、 stopsound = new JButton(停止播放); jp2 = new JPanel(); jp2.add(playSound); jp2.add(loopSound); jp2.add(stopsound); c.add(jp2); jp4 = new JPanel(); sj1 = new JLabel(); sj2 = new JLabel(); sldDiameter = new JSlider(SwingConstants.HORIZONTAL, 0, 100, 0); / sldYingliang=new JSlider(SwingConstants.VERTICAL,

12、0,60,0); sldDiameter.setMajorTickSpacing(1); sldDiameter.setPaintTicks(true); jp4.add(sj1); jp4.add(sldDiameter); jp4.add(sj2); / jp4.add(sldYingliang); c.add(jp4); vector = new Vector(); jl = new JList(mingcheng); jl.setVisibleRowCount(5); jl.setFixedCellHeight(40); jl.setFixedCellWidth(265); jl.se

13、tSelectionMode(ListSelectionModel.SINGLE_SELECTION); c.add(new JScrollPane(jl); tjian = new JButton(添加); shanc = new JButton(删除); duqu = new JButton(读取); duqu.setVisible(false); baocun = new JButton(保存); baocun.setVisible(false); jp3 = new JPanel(); jp3.add(tjian); jp3.add(shanc); jp3.add(baocun); j

14、p3.add(duqu); c.add(jp3); try String s = c:music.txt; ObjectInputStream input = new ObjectInputStream( new FileInputStream(s); dizhi a1 = (dizhi) input.readObject(); mingcheng = a1.b; vector = a1.a; jl.setListData(mingcheng); catch (Exception e) 4.2.2添加文件的界面和代码:添加文件的界面如图4-3和如图4-4所示:图4-3添加文件界面图4-4添加文

15、件界面添加音乐文件的界面的主要代码如下:tjian.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); / 实例化文件选择器 fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); / 设置文件选择模式,此处为文件和目录均可 fileChooser.setCurrentDirectory(new Fi

16、le(.); / 设置文件选择器当前目录 fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() public boolean accept(File file) / 可接受的文件类型 String name = file.getName().toLowerCase(); return name.endsWith(.wav)|name.endsWith(.au)|file.isDirectory(); public String getDescription() / 文件描述 return 音乐文件(*.wav,*.

17、au); ); if (fileChooser.showOpenDialog(music.this) = JFileChooser.APPROVE_OPTION) / 弹出文件选择器,并判断是否点击了打开按钮 String fileName = fileChooser.getSelectedFile().getAbsolutePath(); / 得到选择文件或目录的绝对路径 vector.add(fileName); StringBuffer buffer = daoxu(fileName); mingcheng.add(buffer); 4.2.3 播放音乐的界面和代码:播放音乐的界面如图4

18、-5所示:图4-5播放音乐界面播放音乐主要代码如下:playSound.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (jl.getSelectedIndex() = 0) String yy = (String) vector.get(jl.getSelectedIndex(); try if (soumd1 != null) soumd1.stop(); a = 0; b = 0; you = 0; soumd1 = Applet.newAudioClip(new F

19、ile(yy).toURL();/给定 URL 处获取音频剪辑 fo = true; String a = fen(yy); sj2.setText(a); soumd1.play(); catch (Exception e1) e1.printStackTrace(); else JOptionPane.showMessageDialog(null, 请选择音乐文件); 4.2.4 单曲循环的界面和代码:单曲循环的界面如图4-6所示:图4-6单曲循环播放界面单曲循环播放的主要代码如下: loopSound.addActionListener(new ActionListener() publ

20、ic void actionPerformed(ActionEvent e) if (jl.getSelectedIndex() = 0) if (soumd1 != null) soumd1.stop(); a = 0; b = 0; you = 0; String yy = (String) vector.get(jl.getSelectedIndex(); try soumd1 = Applet.newAudioClip(new File(yy).toURL(); catch (MalformedURLException e1) e1.printStackTrace(); fo = tr

21、ue; String a = fen(yy); sj2.setText(a); soumd1.loop(); else JOptionPane.showMessageDialog(null, 请选择音乐文件); );五、设计总结5.1 设计体会及评价JAVA是目前最流行的软件开发语言之一,称为网络上的“世界语”。JAVA适合开发基于多媒体、与平台无关、用面向对象的方法进行的基于Internet、Intranet、Extranet的Applet和应用程序。它具有简单高效、面向对象、不依赖于机器结构的特点,支持多线程、分布和并发机制。用JAVA开发的应用软件在可移植性、健壮性、安全性等方面大大优于

22、已存在的其他编程语言。JAVA是一门包含多种知识的学科,提供了丰富的类库,能最大限度地利用网络。JAVA可广泛用于面向对象的事件描述、处理面向对象的企业型的应用开发,还应用于Internet系统管理、Web页面设计、Internet可视化软件开发等方面。在学习的过程中我学到了许多以前没有学到的概念和新鲜资讯。运用这些知识可以完成老师交给我的课程设计任务。这次老师让我们自己拟订题目,给了我们很大的想象空间。我选了一个打字游戏的课程设计题目。在接到这个课程设计任务的时候,我茫然了,不知道应该作些什么,从哪里出发。回到寝室我静静的思考,整理了一下思绪,又在同学的帮助下,我有了系统的规划。我首先去图书

23、馆查找资料,找了一些JAVA课程设计相关的书籍;然后我又上网查找了有关的图片和说明。最后,在老师的指导和帮助下,在加上自己的努力,一份成功的JAVA课程设计终于完成了。JAVA课程设计的制作过程虽然是艰难而辛苦的,但是我却从中感到了快乐与欣慰。快乐是因为我以前对于JAVA的知识可以说是孤陋寡闻,但是通过这次课程设计我使自己的知识更加的丰富了,加大了自己的知识面。让自己的实力扩大了。所以我感到非常的快乐。欣慰是因为看着自己做出的课程设计得到了老师的认同,取得了成功。这次课程设计的整体过程是充实而满足的。JAVA这门课程对于我们来说是很重要的,很感谢学校为我们开设了这样一门课程,丰富了我们的知识范围,促使我们的知识多样化发展,使我们的阅历更加坚实。让我们在以后的工作中有所应用。参考文献1 求是科技编著,Delphi 7程序设计与开发技术,北京: 人民邮电出版社, 2004年第1版,2004年11月北京第一次印刷;2 明日科技:李文立, 刘强,梁冰编著,Delphi 数据库系统开发案例精选,北京: 人民邮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论