当前位置:文档之家› MP3音乐播放器课程设计

MP3音乐播放器课程设计

Java程序设计课程设计说明书简单音乐播放器起止日期:2011年12月6日至2012年1月4日学生姓名XXX班级软件工程093班学号09408300310 成绩指导教师计算机与通信学院2011年12 月28日目录一、绪论 (1)1.1 课题背景 (1)1.2 课程设计目的 (1)1.4 课程设计实验环境 (1)1.5 课程设计要求 (1)二、课程系统分析 (3)2.1 系统分析 (3)2.1 功能分析 (3)三、系统设计 (4)3.1 系统功能结构图 (4)3.2 模块功能设计 (4)3.2.1处理“添加”按钮 (4)3.2.2处理“播放”按钮 (4)3.2.3 处理“停止”按钮 (4)3.2.4 处理“单曲循环”按钮 (5)四、系统实现 (6)4.1 系统主界面的实现 (6)4.2 系统主要功能实现 (6)4.2.1系统主界面及关键代码: (6)4.2.2添加文件的界面和代码: (9)4.2.3 播放音乐的界面和代码: (11)4.2.4 单曲循环的界面和代码: (12)五、设计总结 (15)5.1 设计体会及评价 (15)参考文献 (16)致谢 (17)一、绪论1.1 课题背景随着社会电子音乐文件的与日俱增,作为现在最流行的音乐文件*.mp3,*.wav文件的数量和规模也在比以往的任何时候要多,不论是电台DJ需要使用方便而有效地管理自己所使用的音乐文件,还是个人。

在计算机日益普及的今天,若采用一套有效的音乐播放器。

将自己所收藏的大量的音乐文件能随时随地的播放,这将方便于众用户听音乐的需求。

通过使用本音乐播放器能为音乐爱好者带来意想不到的收获。

1.2 课程设计目的《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.4 课程设计实验环境程序运行在安装有windows操作系统的计算机上(台式机和笔记本),兼容windows 2K/XP/Vista/7计算机硬件要求:1.CPU:1G;2.内存:512M. ;3.显卡:256M显存;文件播放:需要安装有声卡、要求安装有语音库。

JA VA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.5 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA VA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。

同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

二、课程系统分析2.1 系统分析2.2.1程序界面布局设计(1) 创建一个对话框类,类名为music类。

(2) 向对话框中添加JSlider控件、JList控件以及按钮控件。

(3) 设置所添加的控件的属性。

系统界面的运行结果图如图2-1所示:图2-12.1 功能分析MP3播放器主要对常用Windows音频格式的文件实现播放控制:◆播放歌曲;◆单曲循环;◆停止播放;◆添加音乐文件;◆删除文件;◆实现音频播放的进度;◆修改音乐文件;三、系统设计3.1 系统功能结构图音乐文件播放器的功能结构图如图3-1所示:图3-13.2 模块功能设计3.2.1处理“添加”按钮单击“添加”按钮后,在setFileSelectionMode()函数中,首先对文件类型进行过滤,调用accept()函数打开对话框选择一个媒体文件,通过GetPathName()函数获取文件路径,通过GetFileName()函数获取文件名后,调用GetDlgItem()函数设置“暂停”按钮以及“停止”按钮不可用。

3.2.2处理“播放”按钮单击“播放”按钮后,在OnButtonPlay()函数中,通过调用MCIMP3类的MCIOpen()函数获取刚才选择的文件路径以及文件名,调用该类的MCIPlay()函数播放歌曲,此时调用DisplayInfo()函数在Static Text控件上显示“正在播放的歌曲是(文件名)”,进行歌曲的播放,然后利用GetDlgItem()函数设置“播放”按钮不可用。

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

3.2.4 处理“单曲循环”按钮单击“单曲循环”按钮后在Applet类中调用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;public 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 = 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("单曲循环");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=newJSlider(SwingConstants.VERTICAL,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.setSelectionMode(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);jp3.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添加文件界面添加音乐文件的界面的主要代码如下:tjian.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { JFileChooser fileChooser = new JFileChooser(); // 实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_D IRECTORIES); // 设置文件选择模式,此处为文件和目录均可fileChooser.setCurrentDirectory(new File(".")); // 设置文件选择器当前目录fileChooser.setFileFilter(newjavax.swing.filechooser.FileFilter() {public boolean accept(File file) { // 可接受的文件类型String name = file.getName().toLowerCase();returnname.endsWith(".wav")||name.endsWith(".au")||file.isDirec tory();}public String getDescription() { // 文件描述return"音乐文件(*.wav,*.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-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(newFile(yy).toURL());//给定 URL 处获取音频剪辑fo = true;String a = fen(yy);sj2.setText(a);soumd1.play();}catch (Exception e1){e1.printStackTrace();}} elseJOptionPane.showMessageDialog(null, "请选择音乐文件");}4.2.4 单曲循环的界面和代码:单曲循环的界面如图4-6所示:图4-6单曲循环播放界面单曲循环播放的主要代码如下:loopSound.addActionListener(new ActionListener(){ public 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(newFile(yy).toURL());} catch (MalformedURLException e1) {e1.printStackTrace();}fo = true;String a = fen(yy);sj2.setText(a);soumd1.loop();} elseJOptionPane.showMessageDialog(null, "请选择音乐文件");}});五、设计总结5.1 设计体会及评价JA VA是目前最流行的软件开发语言之一,称为网络上的“世界语”。

相关主题