MP3音乐播放器课程设计
音乐播放器课程设计报告

课程设计报告之水城攒孽创作课程设计名称:音乐播放器院系:信息工程学院学生姓名:班级:学号:成绩:指导教师:开课时间:2016-2017学年 2 学期音乐播放器一、实践的内容和要求学习WAV格式音频播放原理、数字音频接口及的相关知识。
了解模拟音频信号和数字音频信号的概念。
掌握编写音频播主要内容放器的方法。
实现音频播放,小键盘输入操纵。
本系统要做一个音乐播放器,使用通用定时器定时,用比较输出功能,输出乐谱频率的方波发生声音,对 3 首歌曲编码,其支持 WAV 格式音频播放(上键:暂停;左键:上一首;右键:下一首)。
利用硬件ARM 嵌入式开发平台、用于ARM7TDMI 的 JTAG 仿真器、PC 机 Pentium100开发实现实现音频播放。
主要实现:上一首按键:当点击上一首按键时,当前播放歌曲的上一首歌首被播放。
下一首按键:当点击下一首按键时,当前播放歌曲的下一首歌曲即被播放。
当点击停止键时,当前歌曲即会被停止。
播放界面设计:在歌曲进行播放时,界面应包含所有的按键,而且要歌曲的曲目单。
二、实践原理WAV播放器系统要求能够对mp3、wav格式的音频文件进行解码,处理起来速度是有要求的,尤其是对320Kbps的MP3格式数据流的处理,必须非常快,才干实现MP3的流畅播放,可供选择的八位机有AVR、PIC,可供选择的32位处理器有SAMSUNG、STM32、ATMEL等。
选择MCU优先考虑于拥有丰富的RAM,八位机RAM主要靠扩展,内部RAM一般在4Kbyte以内,32位机里面,SAMSUNG一般不内带RAM,也要外扩。
本实验使用了ARM7处理器,MP3解码可以有两种方法,一是通过ARM处理器软解码,通过对MP3数据格式的解析实现MP3播放,二是通过外部解码芯片直接解码。
第一种方法在解码高码率的MP3时,ARM7处理能力吃紧,而且STM32还需要外部DAC来做音频输出,所以采取第二种方法进行解码。
MP3罕见的解码芯片有VS100X系列和STA01系列,STA01需要外接DAC做音频输出,而VS1003自带DAC,且解码的文件格式包含mp3和wav,另外它还可以实现录音功能,方便以后进行功能的拓展应用。
MP3音乐播放器实验报告

河南科技大学课程设计说明书课程名称面向对象程序课程设计题目MP3仿真程序设计院系电子信息工程学院班级计103 班学生姓名指导教师日期 2013.3.3~2013.3.17课程设计任务书任课教师:时间:2013.3.3课程设计报告文档题目:MP3仿真程序设计一.引言1.编写目的:随着多媒体技术的发展,如何简单方便的播放各类媒体已成为人们普遍关注的问题。
本设计就是基于面向对象技术,利用VC++6.0开发制作一个具有自己设计风格的简单的多媒体MP3播放器。
该播放器是基于MFC集成开发环境,利用MCIWnd类,建立了一个MP3播放器,通过调用这个类的函数来实现MP3播放器的暂停,播放,上一首,下一首,快进等基本功能。
它外观简洁,操作简便,系统资源占用少等功能。
通过MP3仿真程序设计,更加深入了解面向对象的编程。
通过本课程设计,巩固面向对象程序设计的基本概念、原理和技术,学会使用C++语言进行简单程序的开发,将理论与实际相结合,并在此基础上强化了实践意识,提高其实际动手能力和创新能力。
2.定义:HWND m_PreAudio,m_Audio;bool m_IsPaused,m_IsOpened;前两个变量用来存储MCIWndCreate返回的窗口句柄,初始值为NULL;后两者分别用来记录文件的播放与暂停状态,初始值分别为true与false;3.参考资料:1.郑秋生、吴庆涛,《C/C++程序设计》,北京:电子工业出版社2.谭浩强《C++程序设计》,北京:清华大学出版社二.任务的描述1.目标:利用C++编写制作一个MP3播放器。
2.功能描述:实现添加音乐,播放音乐,上一首,下一首,暂停,关闭播放,删除音乐,快进控制,循环播放,背景添加等功能。
3.性能描述(1)数据精确度:各种按钮点击之后1秒内都会触发点击事件,其中快进拖动,反应时间在1—2秒。
(2)时间特性:程序2秒内就可以运行。
功能按钮1秒内触发点击事件。
基于LabVIEW的MP3播放器设计

成绩评定表课程设计任务书目录1目的及基本要求 (1)2 MP3播放器设计原理 (1)2.1 MP3播放器原理 (1)2.2 流程图 (1)2.3 设计步骤 (1)3 MP3播放器设计和仿真 (2)3.1 总体程序设计 (2)3.2 各功能模块详细设计 (4)4 结果及性能分析 (5)4.1 运行结果 (5)4.2 性能分析 (6)参考文献 (7)1 目的及基本要求熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现MP3播放器的设计和仿真。
基本要求:基于LabVIEW的MP3播放器设计,主要利用labview的Activex, 属性节点,调用节点,Event structure等控制实现的, MP3音乐播放器界面包括播放歌曲名字,播放路径以及停止按钮。
能熟练运用LabVIEW开发环境完成其他一些项目程序。
2 MP3播放器的设计原理MP3播放器,主要用于播放已存储计算机磁盘中的音乐文件。
它是将播放器的系统装入计算机,以通用的计算机硬件及操作系统为依托,实现音乐功能的。
VI程序设计里,默认容易识别的格式为WAV格式,所以在设计MP3时采取调用的方法,本系统主要利用labview的Activex, 属性节点,调用节点,Event structure 等控制实现的。
2.1 MP3播放器工作原理MP3的工作原理:从内存中取出并读取存储器上的信号→到解码芯片对信号进行解码→通过数模转换器将解出来的数字信号转换成模拟信号→再把转换后的模拟音频放大→低通滤波后到耳机输出口,输出后就是我们所听到的音乐了。
2.2 流程设计程序流程设计:设定路径,判定路径是否有效→无效报错;有效,执行下一阶段程序→调用媒体播放器,编写歌名显示和文件路径显示,设置停止功能按钮→程序结束。
本程序主要涉及到一下控件或结构的使用:(1)事件结构:包括一个或多个子程序框图或事件分支,结构执行时,仅有一个子程序框图或分支在执行。
基于DSP的MP3播放器设计

基于DSP的MP3播放器设计————————————————————————————————作者:————————————————————————————————日期:2淮阴工学院《DSP技术及应用》课程设计选题名称: 基于DSP的MP3播放器设计系(院):专业:班级:姓名:学号:指导教师:学年学期:2010 ~ 2011 学年第 2 学期2010 年7 月 2 日设计任务书课题名称基于DSP的MP3播放器设计设计目的1.了解MP3播放器系统的功能;2.理解DSP应用系统开发的基本思路及方法;3.练习使用汇编语言编写应用程序的基本步骤;4.学习软件开发过程及资料收集与整理,学会撰写课程设计报告;5.学会对所学知识进行总结与提高;实验环境1.Windows 2000以上操作系统;2.CCS开发环境;任务要求1.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;2.在第18周末之前完成预设计,并请指导教师审查.通过后方可进行下一步工作;3.按指导书要求设计软件,实现设计的功能,并显示正确的结果;4.要求形成稳定的程序软件,可以运行,方可申请参加答辩;工作进度计划序号起止日期工作内容1 2011.6.27~2011.6。
28 在预设计的基础上,进一步查阅资料,完成硬件电路设计。
2 2011.6。
28~2011。
6.29 编写软件代码,调试与完善。
3 2011.6。
29~2011。
6.30 测试程序,优化代码,增强功能,撰写课程设计报告.4 2011。
6.30~2011。
7。
1 提交软件代码、硬件电路成果和设计报告,参加答辩. 指导教师(签章):年月日摘要:在当今这个信息、科技高速发展的数字化时代,数字信号处理技术逐步体现出它的优势与拓展空间.越来越多的电子产品将数字信号处理作为技术核心,并广泛应用于控制、通信、图像处理等各个领域。
为了适应这一发展趋势,基于DSP的MP3播放器设计的这一课题也就如期而至,在这次接近实践的实习中我们将针对DSP的硬件实现原理和其结构特点,利用汇编语言设计相应的代码来实现预期目的中所要达到的MP3播放器各项功能。
音乐播放器课程设计

音乐播放器课程设计一、课程目标知识目标:1. 学生能够理解音乐播放器的基本原理和功能。
2. 学生掌握音乐播放器界面设计的基本元素和布局。
3. 学生了解音乐播放器中不同音乐格式及其特点。
技能目标:1. 学生能够使用音乐播放器软件进行音乐播放、暂停、停止等基本操作。
2. 学生能够通过音乐播放器软件对音乐进行分类、排序和搜索。
3. 学生能够运用所学知识设计和制作简单的音乐播放器界面。
情感态度价值观目标:1. 培养学生对音乐的热爱和欣赏能力,提高审美情趣。
2. 培养学生团队协作和沟通能力,学会分享和交流音乐心得。
3. 增强学生对科技产品的认识,激发创新意识和探索精神。
课程性质:本课程为信息技术与音乐相结合的综合性课程,注重实践操作和实际应用。
学生特点:六年级学生具有一定的信息技术基础和音乐素养,对新事物充满好奇,喜欢动手实践。
教学要求:结合学生特点,采用任务驱动法,引导学生自主探究和合作学习,注重理论与实践相结合,提高学生的实际操作能力和创新能力。
通过本课程的学习,使学生能够将所学知识应用于实际生活,提升音乐欣赏和信息技术素养。
二、教学内容1. 音乐播放器原理与功能- 了解音乐播放器的基本构成和原理- 掌握音乐播放器的主要功能及操作方法2. 音乐播放器界面设计- 学习音乐播放器界面设计的基本原则- 分析并模仿经典音乐播放器界面布局3. 音乐格式及特点- 介绍常见音乐格式(如MP3、WAV等)及其特点- 了解音乐格式对播放效果和文件大小的影响4. 音乐播放器操作与使用- 学习使用音乐播放器软件进行基本操作(播放、暂停、停止等)- 掌握音乐播放器的高级功能(如音乐分类、排序、搜索等)5. 设计制作音乐播放器界面- 学习运用设计软件制作音乐播放器界面- 结合团队协作,设计并展示个性化的音乐播放器界面教学大纲安排:第一课时:音乐播放器原理与功能第二课时:音乐播放器界面设计第三课时:音乐格式及特点第四课时:音乐播放器操作与使用第五课时:设计制作音乐播放器界面教学内容关联教材章节:《信息技术》六年级上册:第五章 多媒体技术应用,第三节 音乐播放器原理与使用。
音乐播放器课程设计报告

课程设计报告课程名称PLD原理与应用设计题目音乐播放器专业通信工程四位抢答器摘要随着我国经济和文化事业的发展,在这个竞争激烈的社会中,知识竞赛、评选优胜,选拔人才之类的活动愈加频繁。
在很多竞争场要求有快速公正的竞争裁决,例如:证劵、股票交易及各种智力竞赛等。
在现代社会生活中,智力竞赛更是作为一种生动活泼的教育形式和方法能够引起观众极大的兴趣。
但是、在竞赛中往往是多个选手一起,分为几个小组参加比赛,针对主持人提出的问题各竞赛小组进行抢答,而抢答环节就要有一种逻辑电路抢答器作为裁判员功能、实现其比赛公平、公正的规则。
智能抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它都能客观、迅速地判别出最先获得发言权的选手。
新增了许多功能,如选手号码显示,抢按后的计时,选手得分显示等功能。
随着科技的发展,现在的抢答器向着数字化、智能化的方向发展.本设计借助于QuartusⅡ软件仿真制作了四人抢答器。
通过选手按动按键的先后,判定由哪位选手回答问题,并且实现倒计时和对选手加分的功能。
本设计分为三个模块:控制模块、计时模块、计分模块,各个模块共同作用,以实现整个设计的总体功能。
关键词:QuartusⅡ,仿真,抢答器,控制模块,计时模块,计分模块Four-way responderABSTRACTWith the development of China's economic and cultural undertakings, in this competitive society, knowledge contests, selection of superior, talents such as activities more and more frequent. In many competitive games require fast fair competition award. In the modern society life, quiz is as a kind of lively education form and the method can cause the audience interest. But, in the competition is often several players together, divided into several groups to participate in the game, against the host question carries on the competition team vies to answer first, vies to answer first link will have a logic circuit buzzer as referee function, achieve the game rules of fairness and justice.Smart responder is a kind of equipment, they are widely used in various competitions, vies to answer first, it can be objective, quickly won the voice discriminant out first. Added many features, such as the contestant number display, rob after pressing time, players score shows, and other functions. With the development of science and technology, now the responder toward digital, intelligent direction.This design with the aid of Quartus Ⅱsoftware simulation produced four responder. Through the player has to press a button, decide which players to answer the question, and can realize the function of the countdown and the player points. This design is divided into three modules: control module, timing module, scoring module, each module combination, to achieve the over all function of the whole design.KEY WORDS: QuartusⅡ,Simulation ,Answer four device,Control,Timing,Scoring目录前言 (1)第1章绪论 (2)1.1 抢答器系统图 (2)1.2 抢答器设计要求 (2)1.3 基本功能 (3)第2章模块设计 (4)2.1 主控制模块 (4)2.1.1 主要功能 (4)2.1.2 代码编写 (4)2.1.3 仿真波形及其分析 (6)2.2计时模块 (7)2.2.1 主要功能 (7)2.2.2 代码编写 (7)2.2.3 仿真波形及其分析 (8)2.3 计分模块 (9)2.3.1 主要功能 (9)2.3.2 代码编写 (9)2.3.3 仿真波形及其分析 (12)第3章顶层电路 (13)3.1 电路图 (13)3.2 抢答器工作原理 (14)3.2.1 各个端口的含义 (14)3.2.2 操作流程及相应波形图 (14)结论 (16)谢辞 (17)参考文献 (18)前言关于这次设计的用于多人竞赛抢答的器件,在现实生活中很常见,尤其是在随着各种智益电视节目的不断发展,越来越多的竞赛抢答器被用在了其中,这种抢答器的好处是不仅能够锻炼参赛选手的反应能力,而且能增加节目现场的紧张、活跃气氛,让观众看得更有情趣。
基于STM32的MP3播放器设计与实现_毕业设计论文

《嵌入式系统原理》课程设计说明书题目:利用STM32实现MP3播放器院(系):信息与电气工程学院STM32芯片应用实验设计任务书第一种方案是简易声波播放器,仅使用STM103V100评估板,令计时器TIM4工作在PWM模式下,将wav格式的声波文件从SD卡中读出,由TIM4产生不同频率的方波通过低通滤波器和放大器送喇叭,如图1所示;第二种方案则是简易MP3播放器,还需要使用额外的解码芯片,将MP3格式的文件从SD卡读出,然后送解码芯片解码播放,如图2所示。
本节将先介绍SD卡、FAT16文件格式、VS1003编解码器等关键部分,然后再分别给出两种设计方案的软件设计。
图1 简易声波播放器方案图2 简易MP3 Player方案1 SD卡的结构及读写方法STM103V100评估板有SD连接器,其使用SPI总线与STM32处理器连接,如图3所示。
图3 SD连接器与STM32处理器SPI连接图SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。
本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD 卡,可以参考相关资料。
SD卡内部结构及引脚如图4所示。
图4 SD卡内部结构及引脚SD卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz 之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。
SD卡以命令形式来控制SD卡的读写等操作。
可根据命令对多块或单块进行读写操作。
音乐播放器的设计—课程设计论文

单片机课程设计报告项目名称音乐播放器的设计专业班级通信111班学生姓名指导教师2013年12月6日I摘要本设计是一个基于AT89S52系列单片机的音乐播放器,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐播放器。
该音乐播放器主要由按键电路、显示电路、复位电路、时钟电路以及蜂鸣器组成。
使用四个按键控制音乐播放器,两个用来切换歌曲,即上一曲和下一曲;一个用作暂停,还有一个是复位键。
本音乐播放器共有三首歌曲。
播放歌曲时,按上一曲和下一曲数码管就会相应的显示出当前播放的歌曲,利用暂停来控制歌曲的播放/停止。
本设计利用KEIL编程软件对音乐播放器源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。
本播放器具有电路简单,功能强大,易于拓展等特点。
关键词:单片机;音乐播放器;蜂鸣器;数码管I IAbstractThis design is a series based on AT89S52 SCM music player, based on single chip microcomputer technology principle, through the hardware circuits and software compilation, design to produce a multi-functional multi-purpose music player. The music player is mainly composed of the key circuit, display circuit and reset circuit, clock circuit and a buzzer. Using four buttons control the music player, two used to switch songs, on the one and the next song; One used as a pause and a reset button. This music player three songs. Play songs, according to one song and the next song digital tube will be corresponding shows the current playing song, using the pause to play/stop control songs. This design using the KEIL programming software for music player source program of programming and debugging, cooperate with the PROTEUS simulation software for hardware simulation debugging. This player has the circuit is simple, powerful, easy to expand, etc.Key words: single chip microcomputer; Music player; Buzzer.; Digital tube;I I I目录摘要 (I)Abstract ....................................................................................................I II 目录 . (IV)第1章绪论 (1)1.1 单片机概述 (1)1.2 课题概述 (1)第2章设计目的、要求、仪器及芯片 (3)2.1 设计目的 (3)2.2 设计要求 (3)2.3 设计使用的仪器 (3)2.4 单片机芯片介绍 (4)第3章硬件电路设计 (6)3.1 总体设计方案 (6)3.2 单元电路设计 (6)3.2.1 晶振电路 (6)3.2.2 复位电路 (7)3.2.3 发声电路 (7)3.2.4 显示电路 (7)3.3 总体电路 (8)第4章系统的软件设计 (9)4.1 音乐产生原理 (9)4.1.1 音调和节拍 (9)4.1.3 编码 (10)4.2 总体流程图 (11)4.3 键控子程序 (12)4.3.1 播放/暂停子程序 (12)4.3.2 曲目选择子程序 (13)4.4 程序的编译 (14)4.4.1 KEIL软件简介 (14)4.4.2 程序的编译 (15)I V第5章电路仿真调试 (16)5.1 仿真平台 (16)5.1.1 PROTEUS软件简介 (16)5.2 仿真测试 (16)5.3 测试总结 (17)总结 (18)致谢 (19)参考文献 (20)项目创新及特色 (21)附录1 程序清单 (22)附录2 元器件清单 (26)附录3 电路实物图 (27)V第1章绪论1.1单片机概述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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是目前最流行的软件开发语言之一,称为网络上的“世界语”。