《基于LabVIEW的MP3播放器程序设计0.doc》由会员分享,可在线阅读,更多相关《基于LabVIEW的MP3播放器程序设计0.doc(6页珍藏版)》请在三一办公上搜索。
1、 目 录1程序设计背景 . 22程序设计思路 . 22.1程序整体设计思路. 22.2程序流程设计. 33程序介绍 . 33.1程序各部分模块结构. 33.1.1文件路径判断. 33.1.2媒体播放器调用的实现. 43.1.3当前播放曲目显示的实现. 53.1.4事件结构的设置. 53.1.5路径及其转化实现. 63.2程序整体结构. 64程序改进 . 75存在的一些问题 . 86结论 . 8 基于LabVIEW的MP3程序设计1程序设计背景MP3是利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号)
2、对低频信号使用小压缩比,保证信号不失真。MP3的工作原理:从内存中取出并读取存储器上的信号到解码芯片对信号进行解码通过数模转换器将解出来的数字信号转换成模拟信号再把转换后的模拟音频放大低通滤波后到耳机输出口,输出后就是我们所听到的音乐了。经过几年的发展MP3已经走进了千家万户,使用者也遍布各个年龄段和各个文化阶层。从最初的简单MP3播放器,到现在的手机,平板等便携设备自带的MP3播放器,MP3播放器已经走向大众,并演化为人们生活不可缺少的一部分,车上会有车载MP3,电脑手机平板上的MP3也是必不可少,总之,已经人们时时刻刻都已经在享受着MP3带来的快乐。2程序设计思路2.1程序整体设计思路该虚
3、拟仪器MP3播放器,主要用于播放已存储计算机磁盘中的音乐文件。它是将播放器的系统装入计算机,以通用的计算机硬件及操作系统为依托,实现音乐功能的。VI程序设计里,默认容易识别的格式为WAV格式,所以在设计MP3时采取调用的方法,本系统主要利用labview的Activex, 属性节点,调用节点,Event structure等控制实现的。 MP3音乐播放器界面包括播放歌曲名字,播放路径以及停止按钮。 2.2程序流程设计程序流程设计:设定路径,判定路径是否有效无效报错;有效,执行下一阶段程序调用媒体播放器,编写歌名显示和文件路径显示,设置停止功能按钮程序结束。本程序主要涉及到一下控件或结构的使用:
4、(1)事件结构:包括一个或多个子程序框图或事件分支,结构执行时,仅有一个子程序框图或分支在执行。事件结构可等待直至事件发生,并执行相应条件分支,处理该事件。连线事件结构边框左上角的“超时”接线端,指定事件结构等待事件发生的时间,以毫秒为单位。默认值为1,即永不超时。(2)ActiveX容器:用于在VI的前面板上嵌入ActiveX对象。基于Windows的应用程序可通过此方式在前面板上显示并与LabVIEW控件交互。可在ActiveX容器中放置两种类型的ActiveX对象。用户可自行创建新的ActiveX控件或文档。也可插入现有的ActiveX控件或文档。框图中的MEDIA PLAYER就是现有
5、的控件。(3)属性节点:可自动调整为用户所引用的对象的类。LabVIEW的属性节点可访问ActiveX属性。框图中的IWMPPLAYER4和IWMPCONTROLS均为所引用的对像的类。(4)路径控件:用于输入或返回文件或目录的地址。(5)字符串/数组/路径转换:使路径转换为字符串,以操作平台的标准格式描述路径。字符是当前平台上通过标准格式路径表示的路径描述符。字符串的数据类型结构与路径一致。3程序介绍3.1程序各部分模块结构3.1.1文件路径判断在前面板新建银色里新建一个文件路径输入控件,文件路径控件,创建一个 条件判断文件路径的有效性,在条件结构执行中,若路径为真,即有效,则进行程序下一步
6、;路径为假则报错,报错利用建议错误处理器完成。完成此小模块后的程序图如图3-1所示: 图3-1 文件路径及条件结构对路径的判断3.1.2媒体播放器调用的实现添加属性节点调整为所引用对象的类:在程序框图中右键单击出“函数”选板,点击“互联接口”,选择ActiveX属性节点选择类ActiveXIWMPPLAYER4,左键单击属性栏,即可选择相应的属性URL。若不止一个属性,则下拉属性栏,在按照相同的方法选择相应的属性controls。其结果如右图:。IWMPCONTROLS的创建及参数设定方法基本和IWMPPLAYER4一致,这里就不在重复,其结果如:左下图:。用ActiveX容器插入MEDIA
7、PLAYER:在前面板上右键单击打开控件,按照 控件经典经典容器 ActiveX容器插入ActiveX对象WindowsMediaPlayer 的步骤即可实现。其结果在前面板上有显示。用ActiveX容器插入文件路径输入控件:按(4)的步骤打开控件后,按照控件经典经典容器 ActiveX容器替换文本输入控件文件路径输入控件操作完成即可。其结果在前面板上也有显示。完成后在程序框图接线,结果如图3-2所示: 图3-2 媒体播放器调用的实现3.1.3当前播放曲目显示的实现利用拆分路径控件拆分出“文件名称”和连接字符串连接“正在播放”常量,可实现对当前播放曲目的显示,在前面板添加一个字符串显示控件即可
8、显示出当前播放曲目。控件连线的实现如图3-3所示: 图3-3 正在播放曲目的显示实现3.1.4事件结构的设置事件结构的设置:首先按照 函数编程结构事件结构的步骤找出事件结构,然后起参数设定过程如下:右键单击事件结构即可出现编辑事件对话框,然后取消左下角的锁定前面板,将事件源修改为“停止”,事件修改为“值改变”。再锁定前面板,即可得到下面的对话框。点击确定保存即可。操作界面设置如果3-4所示: 图3-4 事件结构的参数设定对话框完成后再事件结构中添加停止按钮,用以停止程序的运行。3.1.5路径及其转化实现路径至字符串转换的查找:在程序框图中按照:函数编程字符串字符串/数组/路径转换路径至字符串转
9、换 的步骤即可找到路径至字符串转换函数。3.2程序整体结构对本章前面所述的各部分模块程序进行整合,加上一个文件路径不正确的报错,整理改进后得到如图3-5所示的整体程序结构图: 图3-5 整体程序框图前面板界面经过调整设计后如图3-6所示: 图3-6 前面板示意图4程序改进最初笔者不理解属性节点调用的方法,花费大量时间编写了播放WAV格式 的播放器,颇为复杂,在老师的提醒和同学的帮助下,我又一次查阅资料完成了MP3播放器的程序,此程序不再仅限于WAV格式的播放,对MP3格式也能很容易的实现播放。5存在的一些问题(1)文件路径报错设置中应用了“声音文件信息”控件,由于不能识别WAV以外的格式,所以
10、播放WAV格式以外的声音文件也会报错,但不影响正常播放。(2)快进、快退、上一曲,下一曲功能未能实现。文件的播放只能针对单一文件,未能实现播放列表功能。6结论本来觉得这次课程设计也许好多人都设计不出,老师会放松些,但刚过去一天就听说有同学已经设计的差不多了,这给我施加了不小的压力,看来必须要自己动手了。尽管这个设计要求并不多,当真正是自己一步一步设计出的,当看到自己一步一步的成果,心里的那个喜呵呵真的要自己体会才知道。我想说:没有什么做不到的,不要畏惧,要敢尝试。当然,能够完成此课程设计,功劳不能归功于我一人,非常感谢老师的教导和指点还有同学的帮忙,才让我能够在有限的时间内完成课程设计。因为说
11、真的刚开始打算设计时不是很自信,由于从来没有弄过类似的课程设计,感觉自己没有能力完成因为关于此课程设计的课程学的不怎么好,但最终还是做出来了,我真的感觉不可思议,所以我觉得和做任何事情都一样要有勇气尝试。其实我在设计时更多的是模仿了相关的资料和方法。通过这门课不仅学到了基本的知识更重要领悟到了新的思维方法,我觉得这是自己最大的收获。从这次的课程设计使我领悟到了一些做课程设计的技巧也是步骤:1.设计性课程设计最重要的是要有一条清晰设计思路,在设计前,老师已为我们准备好了参考格式或资料,相当于已经给了设计路,关键就是靠自己深入的 思考各个步骤怎么设计的对每个步骤都要做到分析、思考设计,再去执行,再
12、将所有的部分组装在一起,就可完成该设计2. 此次课程设计要多练习多思考弄懂每个实验的设计思路,并且能够设计自己的东西这样你会感到其乐无穷3.在以后的实验设计当中还应注意培养自己独立思考设计思路的能力不要怕难4.许多事情只有在自己亲手做了之后才会感觉到,其实它并不是你想象中的那样难或简单要善于专心深入的思考问题,所学知识要常用。对于学完这一门课程来说,使我懂得了一个道理:也许只有用自己所学的知识做出一个可以实际运行的东西之后才能确实体到自己的学习是有价值的,但在如今的教育制度和社会背景下,叛逆的人也许在抱怨:“为什么想学的东西学不到,不想学的偏要学”。我觉得多的人已经麻木“因为学校开了课,所以我
13、得学,因为别人都在考,所以我也得考”。至于为什么要学,为什么要考,考了有什么用?自己也不知道,知识是拿来学的,不是用来考的。技术是拿来用的,不是学了以后就丢在一边的。对于老师的教学来说,也许最重要的不是怎么把知识灌输给学生,而是要让学生明白为什么要学,怎么让学生有兴趣去学。所以非常感谢老师这次给我们这课程设计,给了我挑战自己的机会,做什么事都应该大胆的尝试,怕就怕被自己吓倒!积极的心态是弥补自信心不足的最佳途径,面对难题,可能凭自己的实力解决不了,即便如此,我也要积极投入,往往在你全身心投入过程中,所有问题都迎刃而解! 参考文献1 侯国屏.LabVIEW 7.1编程与虚拟仪器设计,北京:清华大学出版社, 20052 石博强.labview6.1编程技术实用教程. 中国铁道出版社,20023 杨乐平.labview高级程序设计,北京:清华大学出版社,20034 何克忠,李伟.计算机控制系统,北京:清华大学出版社,2003