佛山科学技术学院《可视化编程技术》课程设计报告音乐播放器软件设计学生姓名:***学号:**********年级专业:12级教育技术学指导老师:***学院:教育科学学院广东★佛山提交日期:2014年6月目录1 前言 (2)2 概要设计 (3)2.1开发环境 (3)2.2播放器功能 (3)2.3界面设计 (4)2.4类的总体 (5)3详细设计 (5)3.1类的主要方法 (5)31.1初始化窗口: (5)3.1.3设计的总体认识 (12)3.1.4程序流程图 (12)4运行结果 (14)5测试分析 (14)5.1程序运行情况: (15)5.2 程序异常处理:6 程序清单: (15)参考文献 (23)设计总结 (23)摘要:该程序是一个简单的音乐播放器,具有良好的界面,使用人员能快捷简单地进行操作。
即时准确地播放需要的音乐文件,对人们的生活有一定的帮助。
可以实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加多首歌曲目录。
关键字:java音乐播放器,音乐播放器类,方法,事件1 前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的播放器,可以实现简单的播放功能,满足日常基本的工作学习和娱乐需要。
Java是由Sun公司开发的新一代纯面向对象的网络编程语言。
其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。
正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。
Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。
Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。
Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。
还有Java 2企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。
Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。
作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。
Java 语言去掉了C++语言的一些容易引起错误的特性。
Java语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。
2 概要设计2.1开发环境开发平台:Microsoft Windows XP Professional Service Pack 2开发工具:JBuilder 2007 + JDK 1.6.0_022.2播放器功能功能1:文件菜单包含打开、循环和退出三个菜单项:打开:用户通过该菜单项打开本地音乐文件,听任何用户想听的歌曲;循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲;退出:退出音乐播放器,及退出该程序。
功能2:播放控制菜单包含播放、暂停和停止三个菜单项:播放:选择歌曲之后,通过点击播放菜单项启动播放器播;暂停:暂停当前正在播放的音乐;停止:停止当前正在播放的音乐。
功能3:播放列表菜单则是当向里面添加歌曲之后才能够查看到里面所包含的歌曲目录:当用户通过文件打开本地音乐文件后,及相当于在播放列表里面添加了歌曲,及形成相应的歌曲播放目录。
功能4:音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设。
功能5:属性查询键:通过该控键,用户可以查看当前播放音乐的相关属性,如:歌曲名,歌手,发布时间,所属专辑等等,并获取关于该歌曲的用户所需的相关信息。
2.3界面设计图2.3 播放器器面板2.4类的总体public void setupMenu()public void actionPerformed(ActionEvent e)public void itemStateChanged(ItemEvent arg0)public static void main(String[] args)public void controllerUpdate(ControllerEvent e)3详细设计3.1类的主要方法31.1初始化窗口:public void setupMenu(){Menu f = new Menu("文件");MenuItem mi = new MenuItem("打开");CheckboxMenuItem cbmi = new CheckboxMenuItem("循环", false); MenuItem ee = new MenuItem("退出");f.add(mi);f.add(cbmi);f.add(ee);mi.addActionListener(this);cbmi.addActionListener(this);ee.addActionListener(this);f.addSeparator();f.addSeparator();f.addSeparator();Menu l = new Menu("播放列表");Menu c = new Menu("播放控制");MenuItem move = new MenuItem("播放"); MenuItem pause = new MenuItem("暂停"); MenuItem stop = new MenuItem("停止"); move.addActionListener(this);pause.addActionListener(this);stop.addActionListener(this);c.add(move);c.add(pause);c.add(stop);c.addSeparator();c.addSeparator();c.addSeparator();MenuBar mb = new MenuBar();mb.add(f);mb.add(c);mb.add(l);setMenuBar(mb);}3.1.2音乐播放窗口机基本功能的实现:public void actionPerformed(ActionEvent e) {String cufile, selectfile, currentDirectory;if (e.getActionCommand().equals("退出")) {dispose();return;}if (e.getActionCommand().equals("播放")) {if (player != null)player.start();return;}if (e.getActionCommand().equals("暂停")) {if (player != null)player.stop();return;}if (e.getActionCommand().equals("停止")) {if (player != null){player.stop();player.setMediaTime(new Time(0));}return;}if (e.getActionCommand().equals("打开")){FileDialog fd = new FileDialog(this, "打开媒体文件", FileDialog.LOAD);fd.setVisible(true);if (fd.getFile() == null)return;selectfile = fd.getFile();currentDirectory = fd.getDirectory();cufile = currentDirectory + selectfile;MenuItem mi = new MenuItem(selectfile);mi.setActionCommand(cufile);MenuBar mb = getMenuBar();Menu m = mb.getMenu(2);mi.addActionListener(this);m.add(mi);}else{cufile = e.getActionCommand();selectfile = cufile;}if (player != null)player.close();try{player = Manager.createPlayer(new MediaLocator("file:" + cufile)); }catch (Exception e2){System.out.println(e2);return;}if (player == null){System.out.println("无法创建播放器");return;}first = false;setTitle(selectfile);player.addControllerListener(this);player.prefetch();}public void itemStateChanged(ItemEvent arg0){}public static void main(String[] args){new MediaPlayer("播放器");}public void controllerUpdate(ControllerEvent e) {Container tainer = getContentPane();if (e instanceof ControllerClosedEvent){if (vc != null){remove(vc);vc = null;}}if (e instanceof EndOfMediaEvent){player.setMediaTime(new Time(0));if (loop)player.start();}if (e instanceof PrefetchCompleteEvent){player.start();return;}if (e instanceof RealizeCompleteEvent){vc = player.getVisualComponent();if (vc != null)tainer.add(vc,BorderLayout.CENTER);cc = player.getControlPanelComponent();cc.setBackground(Color.blue); if (cc != null){tainer.add(cc, BorderLayout.SOUTH);if (vc != null){pack();return;}{setSize(300, 75);setVisible(true);return;}}}}3.1.3设计的总体认识●JA V A设计的摘要●JA V A设计的目录结构●JA V A设计的概要和详细设计●JA V A设计的版权意识●JA V A设计需要编译的环境●JA V A设计的实用性3.1.4程序流程图4运行结果图4结果显示5测试分析5.1程序运行情况:该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音乐播放窗口里面用户可以进行相关的音乐播放的控制操作。