<强>一、课程设计目的强>
1,编程设计音乐播放软件,使之实现音乐播放的功能。
2,培养学生用程序解决实际问题的能力和兴趣。
3,加深java中对多媒体编程的应用。
<强>二,课程设计的要求强>
利用学到的编程知识和编程技巧,要求学生:
1,系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。
2,编程简练,可用,尽可能的使系统的功能更加完善和全面
3,说明书,流程图要清楚。
<强>三,课程设计内容强>
1,课程设计的题目及简介
音乐播放软件要求:
有图形界面,能播放MP3歌曲,有播放列表,前一首,后一首等常用播放软件功能。
2,设计说明
主要运用多媒体编程,图形界面,数组及循环进行设计,从而实现简单的音乐播放只
包com.mainyin; 进口javax.media.ControllerEvent; 进口javax.media.ControllerListener; 进口javax.media.EndOfMediaEvent; 进口javax.media.PrefetchCompleteEvent; 进口javax.media.RealizeCompleteEvent; 进口javax.media。*; 进口javax.swing。*; 进口java.awt。*; 进口java.awt.event。*; 公共类媒体播放器JFrame实现ActionListener延伸, ItemListener ControllerListener { 字符串标题; 球员的球员; 布尔第一次=true,循环=false; 组件vc, cc; 字符串currentDirectory=零;//构造函数,其中包括了设置响应窗口事件的监听器。 媒体播放器(字符串标题){ 超级(标题);/*关闭按钮的实现. . */addWindowListener(新WindowAdapter () { 公共空间windowClosing (WindowEvent e) { 处理(); } 公共空间windowClosed (WindowEvent e) { 如果(球员!=null) player.close (); system . exit (0); } });//调用程序菜单栏的方法成员完成菜单的布置 setupMenu (); setSize (400、400); setVisible(真正的); }//本方法用以设置程序菜单栏 公共空间setupMenu () {//设置一个菜单 菜单f=新菜单(“文件”);//往设置的菜单添加菜单项 子菜单mi=new菜单项(“打开”); f.add (mi); mi.addActionListener(这个); f.addSeparator (); CheckboxMenuItem cbmi=new CheckboxMenuItem(“循环”,假); cbmi.addActionListener(这个); f.add (cbmi); f.addSeparator (); 子菜单ee=new菜单项(“退出”); ee.addActionListener(这个); f.add (ee); f.addSeparator (); 菜单l=new菜单(“播放列表”); 菜单中c=新菜单(“播放控制”); 子菜单移动=new菜单项(“播放”); move.addActionListener(这个); c.add(移动); c.addSeparator (); 菜单项暂停=new菜单项(“暂停”); pause.addActionListener(这个); c.add(暂停); c.addSeparator (); 子菜单停止=新菜单项(“停止”); stop.addActionListener(这个); c.add(停止); c.addSeparator ();//设置一个菜单栏 菜单条mb=new菜单条(); mb.add (f); mb.add (c); mb.add (l);//将构造完成的菜单栏交给当前程序的窗口; setMenuBar (mb); }//动作时间响应成员;捕捉发送到本对象的各种事件; 公共空间actionPerformed (ActionEvent e) {//TODO自动生成方法存根 字符串cufile、selectfile currentDirectory; 如果(e.getActionCommand () .equals(“退出”)){//调用处理以便执行windowClosed 处理(); 返回; }//此事表明拥护选择了“播放“命令;//如果当前有一个文件可以播放则执行播放命令; 如果(e.getActionCommand () .equals(“播放”)){ 如果(球员!=null) { player.start (); } 返回; }//如果当前正在播放某一文件,则执行暂停; 如果(e.getActionCommand () .equals(“暂停”)){ 如果(球员!=null) { player.stop (); } 返回; }//停止命令的响应; 如果(e.getActionCommand () .equals(“停止”)){ 如果(球员!=null) { player.stop (); 的球员。setMediaTime(新的时间(0)); } 返回; }//用户选择要播放的媒体文件 如果(e.getActionCommand () .equals(“打开”)){ FileDialog fd=new FileDialog(这个,”打开媒体文件”,FileDialog.LOAD);//fd.setDirectory (currentDirectory); fd.setVisible(真正的);//如果用户放弃选择文件,则返回 如果(fd.getFile ()==null) { 返回; }//保存了所选文件的名称及其路径名称已被稍后使用//同时设置当前文件夹路径 selectfile=fd.getFile (); currentDirectory=fd.getDirectory (); cufile=currentDirectory + selectfile;//将用户选择的文件作为一个菜单项加入播放列表,该菜单项名为该文件名;//被点击后给出的命令串是该文件的全路径名 子菜单mi=new菜单项(selectfile); mi.setActionCommand (cufile); 菜单条mb=getMenuBar (); 菜单m=mb.getMenu (2); mi.addActionListener(这个); m.add (mi); 其他}{//程序逻辑运行到次表示用户选择了一个“播放列表”中的媒体文件//此时可以通过如下动作获得该文件的全路径名 cufile=e.getActionCommand (); selectfile=cufile; }//如果存在一个播放器,则先将其关闭,稍后再重新创建//创建播放器时需要捕捉一些异常 如果(球员!=null) { player.close (); } 尝试{ 球员=经理。createPlayer(新MediaLocator(“文件:”+ cufile)); }捕获异常(e2) { System.out.println (e2); 返回; }/* *抓(NoPlayerException e2) {System.out.println(“不能找到播放器”); *返回;} */如果玩家==null) { System.out.println(“无法创建播放器”); 返回; } 首先=false; setTitle (selectfile);//设置处理播放控制器实际的对象;/* */player.addControllerListener(这个); player.prefetch (); }//菜单状态改变事件的响应函数; 公共空间itemStateChanged (ItemEvent arg0) {//TODO自动生成方法存根 } 公共静态void main (String [] args) {//TODO自动生成方法存根 新媒体播放器(“播放器”); }//调用绘图函数进行界面的绘制//公共空间更新(){//}//绘图函数成员//公共空间油漆(图形g) {//} 公共空间controllerUpdate (ControllerEvent e) {//TODO自动生成方法存根 容器锡箔=getContentPane ();//调用player.close()时ControllerClosedEvent事件出现//如果存在视觉部件,则该部件应该拆除(为了一致起见,我们对控制面版部件也执行同样的操作,下一次需要时再构造) 如果(e instanceof ControllerClosedEvent) { 如果(vc !=null) { 删除(vc); vc=零; } 如果(cc !=null) { 删除(cc); cc=零; } }//播放结束时,将播放指针置于文件之首,如果设定了循环播放,则再次启动播放器; 如果(e instanceof EndOfMediaEvent) { 的球员。setMediaTime(新的时间(0)); 如果(循环){ player.start (); } 返回; }//PrefetchCompletEvent事件发生后调用开始,正式启动播放 如果(e instanceof PrefetchCompleteEvent) { player.start (); 返回; }//本事件表示由于播放的资源已经确定;此时要将媒体的图形conmopnent//如果有显示出来,同时将播放器球员的控制显示到窗口里; 如果(e instanceof RealizeCompleteEvent) {//如果媒体中有图像,将对应图像组件载入窗体; vc=player.getVisualComponent (); 如果(vc !=null) 锡箔。add (vc, BorderLayout.CENTER); null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nulljava音乐播放器课程设计