java课程设计---java音乐播放器.doc_第1页
java课程设计---java音乐播放器.doc_第2页
java课程设计---java音乐播放器.doc_第3页
java课程设计---java音乐播放器.doc_第4页
java课程设计---java音乐播放器.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

java程序设计课程设计题 目 java音乐播放器 学 号:姓 名: 指导教师:完成时间: 目 录第一章 系统概述31需求分析31.1任务目的:3第二章 项目开发计划书以及小组人员分工表42.1 项目开发计划书42.2 小组人员分工表4第三章 总体设计说明43.1 功能描述43.4.1 mp3播放53.4.2播放控制53.4.3播放信息控制53.4.4 mp3列表管理5第四章 详细设计54.1界面设计54.2各个功能描述64.2.1mp3播放64.2.2播放控制64.2.3播放信息控制64.2.4mp3文件列表管理64.2.5显示模式64.2.6音量控制74.2.7已播放时间的控制74.3运行环境74.4程序流程图8第五章 调试与测试:95.1调试:95.2 测试:95.3实验结果95.4 总结分析10参考资料10java课程设计心得体会11【摘 要】摘 要 音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。它涵盖了各种音乐格式的播放工具,比如:mp3播放器,wma播放器,mp4播放器等。它们不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。 本系统是一个简单的mp3音乐播放器实现,旨在借助于java语言的强大的跨平台特性来实现本播放器的跨平台的通用。但由于设计时间有限目前仅支持mp3音乐文件的播放。主要使用了java中的多线程编程,系统中的mp3播放、歌词解析及显示、播放时间的显示控制、播放器的主界面等都是单独采用一个独立的线程来进行管理控制的。 基于本程序较小,并不需要使用到数据库,java媒体框架(jmf)使你能够编写出功能强大的多媒体程序,却不用关心底层复杂的实现细节。jmf api的使用相对比较简单,但是能够满足几乎所有多媒体编程的需求。本程序要求如下:媒体播放器使用java编写一个程序实现媒体播放器的功能。此次设计在microsoft windows xp系统下,以java为开发语言,在eclipse开发平台上进行的设计与实现。【关键词】:java、jmfapl、播放器第一章 系统概述1需求分析1.1任务目的:1实现音频文件的正确播放;2. 能够实现对音频播放的控制,如暂停,播放,快进,快退,上一个,下一个等功能;3能够进行文件音频的选择,全屏,音量的控制,拖动,播放模式的控制等;要求掌握:1) 掌握java的语言规范,面向对象的核心概念和特性。2) 掌握java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等。3) 掌握java应用软件的开发环境和开发过程4) 掌握基于jsp网站的开发环境和开发过程5) 掌握面向对象的思想和程序设计方法。1.2程序的设计、调试、运行的软件环境:操作系统:windows xp(sp2)jdk环境:java se development kit(jdk)version 6开发工具:eclipse3.4.1运行平台:windows、linux各个版本、mac等任何平台运行环境:java se runtime environment(jre)version第二章 项目开发计划书以及小组人员分工表2.1 项目开发计划书名称时间工作内容下达设计任务1天(集中)说明如何着手设计的方法和设计任务的解释说明。收集、分析资料及文档2天项目组在项目经理的组织下选题、分析,识别实体,完成项目开发计划书及小组人员分工。设计2天各项目组完成系统层次图、用户界面设计、完成设计说明书程序编写和测试7天根据方案进行现场编程、调试。编写设计文档2天完成软件测试以及用户操作手册的编写。文档提交、答辩1天各小组提交文档,教师根据情况选择是否答辩及答辩方式(抽样答辩或全员答辩)。2.2 小组人员分工表姓名班级学号任务分配组 员音乐播放器界面设计,各个控制按钮功能实现组员 程序的修改、调试,显示操作结果,文档第三章 总体设计说明3.1 功能描述 本mp3播放器主要能够正确的播放音频文件,能够进行播放文件的选择,文件列表框中陈列选择的音频文件,能够控制音频的播放,退出,停止,快进,快退,下一个,上一个,音量的控制,静音控制,全屏选择,任意改变播放视频界面大小等功能。3.2功能结构图 本mp3音乐播放器的主要功能分为五大模块,分别是播放控制模块播放信息控制模块、mp3列表管理模块、以及其他功能模块。在各个模块的内容如图3-1所示:3.4各个功能详细描述3.4.1 mp3播放 此部分为系统的核心部分,主要使用了javasoundapi控制操作系统的音频系统,以音频系统的音频输入输出流进行mp3的播放,此部分是播放控制模块、播放信息控制模块、歌词模块等的运行基础。3.4.2播放控制 主要进行mp3音乐文件的播放控制,主要包括常见播放器的基本的播放控制功能如停止功能、下一首功能、前一首功能等,包括播放器的播放模式的控制(主要实现了常用的五种播放模式:单曲播放、单曲循环、循环播放、随机播放)。模式播放的控制主要用在mp3处于播放模式控制下的音乐文件播放完成时使用。3.4.3播放信息控制主要进行当前播放状态的控制,如播放是处于播放还是停止状态的信息。当前正在播放的mp3的播放时间的显示控制;3.4.4 mp3列表管理主要进行系统中mp3列表中音乐文件的维护。主要是对播放列表经行控制:播放列表中的文件、从列表中删除、向列表中添加、清除列表文件等功能。第四章 详细设计4.1界面设计整个音乐播放器的界面有菜单栏、列表栏、播放界面、音乐控制台、显示播放时间信息栏。具体效果如图所示:4.2各个功能描述4.2.1mp3播放 播放器以java多线程编程设计了播放器的mp3播放,每播放一首新的mp3音乐时都会产生一个独立的播放线程。在每播放一首新的mp3时,系统会对播放器的状态做检查,如果有正在播放音乐的线程在运行,则首先停止此线程,并重置播放器的状态。4.2.2播放控制 主要功能包括播放、停止播放、下一首播放,播放、前一首播放4.2.3播放信息控制 主要功能包括显示当前的播放状态、当前播放的音乐文件、mp3的歌手、mp3的音频频率以及当前mp3播放时间信息的控制和显示。4.2.4mp3文件列表管理 本节主要包括对mp3文件的增加、增加时对音乐文件的检查(此播放器暂时只支持.mp3)、mp3丈件的删除以及mp3播放是播放索引的控制和增加删除mp3文件时mp3显示的下标索引的控制。4.2.5显示模式 主要包括完全显示模式功能和迷你显示模式功能。4.2.6音量控制音量控制主要完成控制播放器的音量的大小以及静音的控制。音量控制按钮准备设计为一个滑动条,根据滑动条的滚动实现播放器音量大小的增减。系统在开始时要读取上次播放器的使用时音量并初始化到播放器的界面上,系统在退出是要对播放器的音量进行保存以便下一次读取。4.2.7已播放时间的控制 使用一个单独的线程来控制mp3的已播放时间的统计和显示,当mp3开始播放是此线程开始运行,当mp3停止播放时,此线程结束。此线程运行期间会首先标记一个mp3的开始播放时间,然后会每0.5秒钟对已播放的时间进行一次统计计算,并将计算的结果格式化为适当的时、分、秒的格式显示在系统的播放信息控制面板上。4.3运行环境jmf事件报告机制允许我们的程序响应媒体驱动的错误,比如数据丢失或资源不可用。事件系统同时也提供了重要的通知协议;当我们的程序调用一个player的异步方法时,只有当收到响应的事件消息时,才能确认操作是否完成。有两种jmf对象会抛出事件,他们是: gaincontrol对象 和 controller 对象。 对于事件, gaincontrol和 controller 遵循java beans 形式。gaincontrol对象只抛出一种类型的事件 gainchangeevent。我们通过实现 gainchangelistener interface来响应gain(增益?)的变化。controller则会抛出多种派生自 controllerevent的事件。我们通过实现 controllerlistener interface 来接收诸如player的controller抛出的事件消息。下图显示了controller抛出的各种事件类型:controllerevents 可分为三类:改变通知、关闭事件和转换事件 变化通知(change notification events)诸如 ratechangeevent 和 durationupdateevent。他们表示player的一些属性数值发生了变化。这类事件通常是对一些方法调用的回馈。例如, 一个player的setrate方法被调用,他会抛出一个 ratechangeevent. 转换事件(transitionevents) 让我们的程序能够响应player的状态变化。 当player从一个状态转换到另一个状态时,就会抛出一个转换事件。 (在1.4中,我们会提供更多的关于player状态的信息) 当player关闭时,则会抛出关闭事件(controllerclosedevents)。当一个player不再可用时,抛出 controllerclosedevent. controllererrorevent(控制器错误事件)则是关闭事件的一个特例。我们写程序时,通过监听控制器错误事件,可以对player故障作出响应, 4.4程序流程图进行相关的组件添加,关联,贴图等初始化工作界面级相关组件设置与初始化方法:setcomponentproperty()list中右击鼠标事件处理,弹出选择操作菜单:mousepressed();单击list中从列表删除事件:menuitem_delete.addmouselistener();list中双击鼠标事件处理,开始播放选中文件:mouseclicked();list列表框中鼠标事件监听及处理方法:addplaylistlistener()单击list中清除播放列表事件:menuitem_deleteall.addmouselistener();左键单击播放暂停按钮事件处理:but_play.addactionlistener();界面上控制按钮单击事件监听及处理方法:addplaybottonlistener()左键单击上一个按钮事件处理:but_prior.addactionlistener();左键单击停止按钮事件处理:but_stop.addactionlistener();左键单击下一个按钮事件处理:but_next.addactionlistener();左键单击快进按钮事件处理:but_quickforward.addactionlistener();左键单击快退按钮事件处理:but_quickback.addactionlistener();左键单击文件按钮事件处理:file.addmouselistener();左键单击单曲播放按钮事件处理:single_play.addmouselistener();构造函数调用成员方法开始:对象实例化左键单击循环播放按钮事件处理: loop_play.addmouselistener();左键单击单曲循环按钮事件处理:single_loop.addmouselistener();左键单击随机播放按钮事件处理: random_play.addmouselistener();对菜单条的鼠标事件监听及处理方法:addplaymenulistener()左键单击停止按钮事件处理:stop.addactionlistener();左键单击播放暂停按钮事件处理:playorpause.addactionlistener();左键单击打开按钮事件处理:open.addactionlistener();左键单击退出按钮事件处理:exit.addactionlistener();左键单击关于按钮事件处理:about.addactionlistener();左键单击帮助按钮事件处理:help_.addactionlistener();单击播放暂停按钮事件处理:menuitem_play.addactionlistener();单击停止按钮事件处理:menuitem_stop.addactionlistener();对播放界面上播放音频时右击事件监听及处理方法:addrightclicklistener()单击快进按钮事件处理:menuitem_skinforward.addactionlistener();单击快退按钮事件处理:menuitem_rewind.addactionlistener();单击退出按钮事件处理:menuitem_exit.addactionlistener();对播放音频时改变窗体大小事件监听及处理方法:container.addcompnentlister();对用户拖动进度条事件监听及处理方法:jslider_progress.addmouseliatener();startplayer(string medialocation);初始化播放器,准备开始播放视频文件:一个内部类进行音频文件的相关操作:class playereventhandler extends controlleradapter ;第五章 调试与测试:5.1调试:调试要根据eclipse中出错的信息以及所导入的javadoc文档还有一些快捷键进行快速调试,通过eclipse运行平台自带的runjava application进行运行程序。5.2 测试:测试过程程中遇到问题:(1)某些用到的类不熟悉,需要查找api (2)没法运行程序,jmf包如何导入及使用。5.3实验结果能够实现所要求的所有功能,即能够正确的播放视频文件,能够进行播放文件的选择,文件列表框中陈列选择的视频文件,能够控制视频的播放,退出,停止,快进,快退,下一个,上一个,音量的控制,静音控制,全屏选择,任意改变播放视频界面大小等功能。运行成功效果如图:5.4 总结分析可以说这么说,本次课程设计综合考察了我们对java程序设计知识的掌握熟练程度和实际运用能力。其间,涉及到了java 中的绝大多数的知识点,如java图形用户界面设计、java的异常处理机制、java中的多线程程序设计、java输入输出流等。当然,这次实验中最重要的还是通过设计一个视频播放器来对java media frame有了深层次的掌握和理解,并能够进行实际的应用。程序实现的关键在于功能的合理划分以及各个包或者类之间的通讯问题,只要分析清楚这两点,剩下的就是按部就班的写代码了。所以设计是关键。功能实现了,再就是如何对程序进行性能优化的问题。把公用的部分用单独的类或者是独立的函数来实现就可以大大简化代码的重复,对程序的理解也有很好的改进。学习java,一定要循序渐进,要一步一步地进行;总之,作为一门程序设计语言,java 的学习务必要做到多看多写多想多请教。多看,看高手、大师的程序,借鉴其解题思路和程序架构;多写,学习程序设计很重要的就是要自己亲自动手写代码,切忌犯眼高手低的弊病,而且这样记忆非常深刻;多想,程序调试中出现一些“莫明其妙”的问题,为什么会这样而不是那样;多请教:程序设计说到底是要彻底搞清设计该语言的人的思想,遇到问题想不通应该请教同学、老师等。这样可达到事半功倍的目的。参考资料java程序设计之网络编程, 李芝兴编,清华大学出版社,出版时间2006年3月(美)cay s.horstmann,gary cornell编,java2 核心技术第6版:基础知识,机械工业出版社,出版时间 2003年10月(美)bruce eckel编,java编程思想第2版,机械工业出版社,出版时间2002年9月jmf入门指南,网络下载。1java课程设计黄明 梁旭 周绍斌编著,电子工业出版社出版.2java课程设计案例精编黄晓东编著,中国水利水电出版社出版.3java程序设计实用教

温馨提示

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

评论

0/150

提交评论