《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc

上传人:文库蛋蛋多 文档编号:2387752 上传时间:2023-02-17 格式:DOC 页数:13 大小:688.50KB
返回 下载 相关 举报
《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc_第1页
第1页 / 共13页
《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc_第2页
第2页 / 共13页
《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc_第3页
第3页 / 共13页
《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc_第4页
第4页 / 共13页
《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc》由会员分享,可在线阅读,更多相关《《虚拟仪器设计》课程设计基于LabVIEW的音乐播放器设计.doc(13页珍藏版)》请在三一办公上搜索。

1、成绩: 虚拟仪器设计课程设计题目: 基于LabVIEW的音乐播放器设计 学 院 精密仪器与光电子工程学院 专 业 生物医学工程 年 级 2013级 班 级 一班 姓 名 学 号 2015年 12月 26日目 录1设计目的32实施方案32.1总体规划32.2软件结构设计43实验结果94总结131设计目的本课题的想法来源于大二第一学期的一门课,叫“面向对象程序设计”,主要内容是应用C+语言编写程序,那时候的期末课程设计我就做的音乐播放器,虽然花费了很多时间,但是最后自己的播放器能运行也是很满足的。于是这次的LabVIEW课程设计打算尝试用另一种编程方式做一个音乐播放器。本音乐播放器能实现的一些基本

2、功能:打开本地音乐文件、播放音乐、暂停、停止、进度条显示并拖动、音量控制、快进快退、显示当前播放曲目、显示音乐文件路径以及“爱心”流水灯、实时显示当前系统时间等。另外还有一些功能没能实现,例如将多首歌曲添加到播放列表中,实现上一首、下一首切换;播放音乐时显示歌词;自动切换墙纸等,原因一方面是临近期末时间不够,另一方面是编程能力有限,而且对LabVIEW还比较陌生,不能自如地运用,希望以后有机会能加以改善。2实施方案2.1总体规划该音乐播放器的功能都可以通过软件程序来实现,所以不需要设计硬件结构,只需要一台自带Windows Media Player和LabVIEW应用程序的PC机。在编程时先实

3、现最基本的功能,如打开文件,调用Windows Media Player播放,并将路径和播放曲目显示在前面板上,之后再逐步添加控件实现暂停,停止,音量控制等功能,而流水灯,系统时间和用户指南按钮是在修饰前面板时临时想到的,于是最后就再加入了这些小功能。主程序流程大致为:点击打开文件按钮弹出文件对话框选择音乐文件显示文件路径和播放曲目调用Windows Media Player播放歌曲,同时流水灯开始工作暂停、播放、音量控制等停止播放,同时流水灯停止工作,文件路径和播放曲目初始化退出程序。然后在主程序中附加了实时显示系统时间和用户指南按钮的程序。2.2软件结构设计1)打开文件并播放音乐程序框图如

4、图,先用一个事件结构检测“打开文件”按钮是否被按下,事件结构可等待直至事件发生,并执行相应条件分支,处理该事件。当按钮被按下后,布尔按钮“打开文件”的值改变使得事件结构执行,将原值赋给条件结构的条件。按钮的原值为False,条件结构执行假分支,弹出文件对话框,选择音乐文件后,通过“引用句柄至路径转换”函数输出文件路径,并在前面板的文件路径显示控件上显示。再利用“拆分路径”函数拆分出路径最后部分的名称,通过“连接字符串”函数将名称与“当前播放:”字符连接,显示在前面板的字符串显示控件上。同时将文件路径通过“路径至字符串转换”函数转换为字符串,并作为URL地址(统一资源定位符)输入给属性节点,属性

5、节点能够获取或设置引用类的属性,该属性节点选择的LabVIEW类为IWMPPlayer4,用以引用Windows Media Player,选择属性为URL,用以设置Windows Media Player的文件读取位置,读取到该路径下的文件后,便开始播放音乐。2)暂停、播放和音量控制等功能播放暂停功能通过事件结构与条件结构的嵌套来实现,事件结构检测到“播放暂停”按钮按下后,执行对应分支,将原值赋给条件结构,条件结构执行“真”或“假”分支,通过调用节点的调用方法实现对Windows Media Player的播放暂停控制。布尔按钮“播放暂停”的按钮动作设置为“单击时转换”,用以暂停与播放的交替

6、实现,在事件结构外加一个while循环可以重复查询按钮状态,这样在播放过程中可以不停切换播放和暂停状态音量控制也是通过属性节点实现,只不过将属性改为Settings.volume,该属性可以直接控制播放器的音量条滑动,利用数值输入控件作为输入,在前面板上通过水平指针滑动杆控制。3)停止及初始化功能“停止”按钮用以停止播放当前歌曲并初始化一部分显示控件,停止功能与播放暂停功能放在同一个事件结构下,按下“停止”按钮后,通过调用节点实现Windows Media Player的停止。初始化部分程序如图,执行“停止”事件时,通过应用程序控制中的VI服务器引用,访问窗格中的控件,再通过属性节点的Cont

7、rols控件属性将各控件引用构成数组,作为输入量输入到For循环结构中,For循环的自动索引隧道每次读取数组的一个元素,作为循环依据。该数组输入到属性节点Controls和调用节点Controls中作为引用,属性节点Controls选择属性为类ID,类ID用于确定LabVIEW对象的类,每个类都对应着一个ID值,例如程序框图中的ID值11对应的类为Path路径,27对应的类为String字符串,通过两个“等于”比较函数和一个“或”函数就可以筛选出ID值为11或27的类,输入到条件结构中的调用节点,从而完成文件路径显示控件和字符串显示控件的初始化,在前面板中的效果即按了停止按钮后,文件位置和播放

8、曲目为空白。4)流水灯流水灯的结构很简单,在前面板上将12个布尔指示灯排列成爱心状,在程序框图中用一个While循环持续运行,将True和False值分别赋给移位寄存器的7个元素,作为流水灯中7行指示灯亮灭的控制依据,设置100ms的等待时间控制流水灯闪烁的速度。While循环每执行一次,流水灯向下一行闪烁。流水灯开始工作的依据是“打开文件”事件结构前的True常量,当正确打开文件后,该常量才能传递至流水灯程序外的条件结构,从而执行内部的While循环;而停止工作是直接将前面提到过的“停止”按钮作为While循环的停止信号,即点击“停止”按钮后不仅当前歌曲停止播放,流水灯也会停止工作。5)退出

9、程序按钮“退出”按钮能停止正在执行的VI并退出LabVIEW程序,通过一个条件结构实现,结构中包含一个双按钮对话框和“退出LabVIEW”函数,当点击了“退出”后会弹出警告对话框,若点击对话框中的确定按钮则退出LabVIEW程序,若点击取消按钮则回到原界面。6)系统时间及用户指南此部分程序中,通过“获取日期/时间”函数返回当前系统时间的时间标识,再通过“格式化日期/时间字符串”将标识转化为字符串形式,显示在前面板的字符串显示控件上。外部套一个While循环来反复查询当前时间,实现实时显示系统时间的功能。“用户指南”按钮用于指导用户正确操作该音乐播放器,点击按钮后会弹出对话框,用户阅读完对话框消

10、息后,点击“我知道了”按钮可关闭对话框。3实验结果1) 前面板设计前面板如图,为尽量让音乐播放器给人一种温馨的感觉,在前面板中加入一些背景色和图标作为修饰,并将流水灯摆放成爱心状2) 日期时间及流水灯运行结果 运行程序后便显示系统时间,打开文件后流水灯工作,循环闪烁3) 打开文件,播放音乐点击“打开文件”按钮后弹出如图对话框选择文件后播放音乐,并显示文件位置和播放曲目,可滚动滑动条完整查看4) 播放暂停音量控制等功能如图为暂停状态,音量调节至38%左右5) 停止及初始化如图为停止状态,可见文件位置和播放曲目已经初始化6) 退出,用户指南左图为点击“退出”按钮后弹出的对话框,右图为点击“用户指南

11、”按钮后弹出的对话框7) 程序分析由于在实现了基本的播放、暂停和停止功能后,又给程序附加了一些功能,如“音量控制”、“退出”、“用户指南”等,为节约循环结构将这些功能都放入了一个大循环中,在“高亮显示执行过程”时程序执行无误,但是取消高亮后就老是报错,后来觉得可能是执行顺序的问题,这些循环与主循环应该是有先后顺序的,但是实际运行时是同时执行的,因此报错,之后我在这个循环中加入了0.05s的时间延迟,就能正常运行了。另外,这个程序运行一次只能播放一首歌,要想换歌必须重新运行程序。这一点很尴尬,若选择了音乐文件后再点击“打开文件”按钮,则程序就崩溃。原本我想在总的程序外加一个While循环,重新打开文件就重新开始循环,但是程序中有很多死循环,即反复查询控件状态的循环,所以加了While循环连第一遍循环都不能结束,也就无法实现重新循环。但我觉得可以在某一些程序外加一个While循环作为总循环,通过“打开文件”按钮控制循环是否重新执行,若以后有时间会优化程序。关于未能实现的那些功能,如播放列表,上一首下一首切换,由于对Windows Media Player的各控件的属性不了解,虽然能简单地实现音乐的播放,但是添加播放列表等功能就不好实现,这些都需要更多的时间去了解才能编程实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号