基于labview的多媒体播放器及K歌之王课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测量总线与虚拟仪器期末综合设计报告
1、摘要
本次所做的虚拟仪器——多媒体播放器,是基于labview控件Windows Media Player,通过labview对其进行功能扩展。该虚拟仪器具备播放Windows Media Player所支持的所有格式音频或者视频文件,在此基础上利用本机电脑自带的声卡,实现了时下所流行的“K歌”——声音的录制和存储回放。本多媒体播放器功能完备,虽然程序实现复杂,但是用户界面操作简单,运行稳定。
2、系统总体设计
2.1、系统硬件
随着技术的不断发展,目前数据采集技术已经日趋成熟,专业的数据采集卡都已经具备完整的数据采集和处理电路,精确度也在不断地提高,但是其市场价格都普遍偏高,而如今具有DSP (数字信号处理)技术的PC声卡的性能已经很高,完全可以成为一个成熟的数据采集系统,可以很好地适应各种不同的场合,并且具有操作简单、价格低廉、通用性强、稳定实用以及驱动程序升级方便等一系列优点。本系统硬件采用PC机自带的声卡作为声音信号的数据采集卡,它是实现声波与数字信号互相转换的一种硬件,它搭载的 A /D 和 D /A 转换器可以很方便地实现模拟信号和数字信号的相互转换。由于声卡采用直接内存读取(DMA)方式传送数据,因此能够极大的降低了CPU的占用率,而且其具有 16 位的 A/D 转化精度,比通常 12 位 A/D 卡的精度高,对于许多工程测量和科学实验来说都是足够高的,其价格却比后者便宜得多,完全符合本系统设计要求。
声卡质量评价的标准主要有采样频率、分辨率、复音数量、声道数量、信噪比和总谐波失真等,其主要的参数介绍如下:
⑴采样频率:即每秒钟所能采集到的声音样本的数量。通常情况下标准的采样频率有11.025KHz、22.05KHz、和44.1KHz三种。还有更高的采样频率可以保证声音的高保真,目前PC机上的声卡可以实现最高96KHz的采样频率,但是这样会占用更多的存储空间。22.05KHz的采样频率是常用的,44.1KHz已是CD音质,由于人耳的分辨率很有限,太高的频率并不能分辨出来,超过48KHz或96KHz的采样对人耳已经没有意义。本VI的采样频率取
22.05KHz。
⑵分辨率:也就是采样位数,也指量化精度,是指模拟信号转化为数字信号的二进制位数,就是在声音信号转换过程中 A /D 和 D /A的精度,目前常用的采样位数有8、12和16,目前最高可以实现32位的采样位数,高采样位数代表着高保真度,同时也会增加数据的处理量。每个采样数据记录的是振幅, 采样精度取决于采样位数的大小,16位的采样位数(也就是2字节)可以细到65536 个数,这已是 CD 标准了;32位的采样位数(也就是4字节)能把振幅细分到 4294967296 个等级, 实在是没必要了。因此本VI采样位数取16位。
⑶通道数量:即声音的通道的数目。常有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声可以使两个喇叭都发声(一般左右声道有分工),更能感受到空间效果。本VI选择2个通道数量。
2.2、软件架构
⑴程序整体设计思路及功能介绍:该虚拟仪器—多媒体播放器,主要用于播放已存储计算机磁盘中的音乐文件和视频文件,它是将播放器的系统装入计算机,以通用的计算机硬件及操作系统为依托,实现音乐及视频播放功能的。同时,通过声卡对声音进行采集处理储存后实现“K歌”。VI程序设计里,默认容易识别的音频格式为WAV格式,具有很大的缺陷,所以我在设计MP3时采取调用的方法,本系统主要利用labview的Activex, 属性节点,调用节点,局部变量,事件结构,循环结构,条件结构,顺序结构并结合声卡这一硬件设备等控制实现的。同时也顺道实现了视频播放功能及“K歌”功能。本多媒体播放器界面包括播放歌曲或视频的名字,播放列表,播放界面,“K歌”界面以及暂停按钮、播放按钮、停止按钮、快进、上一首及下一首,除此之外,还支持列表动态选择功能,随机双击指定的曲目即可播放,鼠标移动到按钮或者列表都会有操作提示,相当的人性化。
⑵程序流程设计:选定路径,判定路径是否有效→无效不执行;有效,执行下一阶段程序→调用媒体播放器,编写列表显示和文件路径显示,设置停止等功能按钮→程序结束。
⑶具体程序说明:
①提示信息模块:
通过创建对应控件的属性节点中的提示框可得到,转化为写入,从而写入提示信息。
②列表中添加音乐文件夹及更新模块:
采用while循环加for循环和事件结构,并结合移位寄存器,实现音乐文件的添加和更新。
③列表位置获取与控制反馈接收模块:
通过播放列表的位置控件和索引控件,实现双击定位。再结合反馈信息经过条件结构实现播放文件的选择控制输出。在for 循环结构中使用了反馈节点及移位寄存器进行反馈控制和历史位置的存储。中间竖直的那一条蓝色的线显示不全的是后面控制模块输出反馈的数值信号。
④控制模块:
这个模块包括了三个while循环、一个声音采集的三个顺序帧的顺序结构、一个条件结构和一个事件结构,实现了各个双击列表曲目播放、上一首、下一首、暂停、播放、停止、快进、K歌之王等功能,其中暂停、播放、停止和快进为系统控件可以使用
的,其他的都需要自己实现控制。
其中双击列表控制采用双击生效的方式,避免了在拖动滑动框时误触发。在“下一首”、“上一首”中均使用了反馈节点将控制信号反馈到执行机构,从而实现目标控制。
3、系统总体运行效果图
前面板
程序框图(具体程序见本人的另一篇:《基于labview的多媒体播放器及K歌之王(源程序及前面板)》)
进行过录音后运行时的效果
播放音乐中的效果
视频播放过程
4、设计过程中遇到的问题
本VI为本人独立自主所设计,经过网络搜索,善无程序及功能一致之VI。所遇到的问题还是不少的。比如:已解决的:完全的双击列表定位问题;“上一首”或“下一首”的反馈控制问题;各个控制之间自由切换的问题;录音文件直接存储并更新到列表的问题。
未解决的问题:播放时的快速后退。
5、设计心得
做完本VI的设计,我对labview这个软件有了更进一步的了解。使我认识到很多东西我都还不懂,都需要去百度或者自己想办法去找解决方法,认识到本人知识能力依然存在欠缺,虽然解决了“快进、上一曲,下一曲和播放列表功能”,和添加了其他功能,但是依然无法实现快退功能。最后感谢老师的栽培和指导以及同学的支持!