基于qt的音频管理系统的设计与实现学士学位论文.doc
《基于qt的音频管理系统的设计与实现学士学位论文.doc》由会员分享,可在线阅读,更多相关《基于qt的音频管理系统的设计与实现学士学位论文.doc(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京邮电大学毕业设计 基于Qt的音频管理系统的设计与实现摘要随着互联网的的发展,PC机已经不能满足终端用户对音频的需要。虽然目前有各种各样的计算机操作系统,如WINDOWS,LINUX,UNIX,MAC OS等以及各种移动开发平台,如Android,BlackBerry OS,IOS,Windows Mobile,Windows Phone,Palm等,不同的操作系统需要不同的系统软件来开发对应的应用程序。同样的功能,却要开发多次,这给程序员带来了冗余的工作量。本文以Qt为基础,对音频管理系统的实际设计情况进行了需求分析,利用软件工程的开发流程及面向对象的思想,构建了音频管理系统的总体框架,为
2、最终音频管理系统的实现提供了理论依据。测试结果表明,基于Qt的音频管理系统可以在Win7的Qt5.2中运行,也可以在ubuntu的Qt5.2中运行,代码只需做微小的调整,减轻程序员的代码量,节省开发成本,为未来的开发提供一个重要的参考。关键词 Qt;音频管理系统;设计;实现Design and implementation of audio management system based on QtAbstractWith the development of the Internet,the PC has been unable to meet the needs of the audio
3、terminal user.Despite various of computer operating system,such as WINDOWS,LINUX,UNIX,MACOS etc,and various of mobile development platform,such as Android,BlackBerry,OS,IOS,WindowsMobile,Windows Phone,Palm etc,different operating systems require different software systems to develop the correspondin
4、g application .The same function needs to develop several times,which brings redundant work for the programmer. This paper,based on the Qt,carrying on the demand analysis of the actual design of the audio management system,using the development process of software engineering and object-oriented ide
5、a,constructing the general framework of audio management system,and provides a theoretical basis for the implementation of the final audio management system finally.The test results show that Qt audio management system can run in Win7 based on the Qt5.2 and it can also run on ubuntu Qt5.2,the code o
6、nly minor adjustments,reducing the amount of code programmers,saving development costs,providing an important reference for future development. Key words Qt;audio management system;design; implementationii目 录摘要iAbstractii1 绪论11.1 开发背景11.2 系统目标11.3 基于Qt程序的音频管理系统的设计的必要性12 关键技术介绍32.1 音频编码的简单概念32.1.1 采样
7、率和采样大小32.1.2 有损和无损32.1.3 音频压缩技术32.1.4 频率和采样率32.1.5 流特征42.2 音频编码42.2.1 PCM编码42.2.2 WAV42.2.3 MP342.2.4 OGG编码52.2.5 MP3PRO编码52.2.6 ACC格式52.3 音频解析52.3.1 MP3文件解析52.3.2 WMA文件解析72.3.3 OGG文件的解析82.4 Qt的事件模型82.4.1 事件的概念92.4.2 事件的创建92.4.3 事件的交付92.4.4 事件循环模型92.4.5 自定义事件102.5 Qt核心机制信号与槽102.5.1 信号102.5.2 槽112.5.
8、3 信号与槽的关联113 需求分析123.1 需求概述123.2 系统用例图123.3 系统关键领域类134 系统设计144.1 系统介绍144.2 主要功能144.3 系统总体模块144.3.1 系统总体模块介绍144.3.2 系统层次图154.4 系统界面模块介绍154.4.1 主页面154.4.2 以演唱者分类,显示演唱者所对应的歌曲名164.4.3 以专辑名称分类,显示该专辑所对应的歌曲名164.4.4 播放列表174.4.5 播放控制相关按钮174.4.6 播放进度条174.4.7 打开按钮174.5 系统功能模块划分174.5.1 音频文件管理184.5.2 播放控制184.5.3
9、 播放列表194.6 系统开发环境195 系统实现205.1 树形结构显示205.1.1 主要相关代码及说明205.1.2 关键技术应用中问题的解决225.2 播放列表225.2.1 主要相关代码及说明225.2.2 功能实现265.3 读取MP3音频文件265.3.1 主要相关代码265.3.2 写代码时的思路依据295.4 播放控制295.4.1 主要相关功能的部分代码295.4.2 媒体对象状态的简单介绍345.5 播放进度条345.5.1 主要相关功能的部分代码346 系统测试376.1 测试的意义376.2 测试方法376.3 测试过程376.4 单元测试386.5 测试总结38参考
10、文献40致谢41外文原文42外文翻译551 绪论1.1 开发背景Qt是1991年奇趣科技(Trolltech)开发的一个跨平台的C+图形用户界面应用程序框架3,9。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt很容易扩展,并且允许真正地组件编程。2012年,Qt被Digia收购,之后发布Qt5.1、5.2版本,提供Qt for Android(Alpha) 、Qt for IOS 。Qt的优势在于,良好的可移植性,可支持大多数操作系统,如 Microsoft Windows 7, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF
11、/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等 ; 面向对象,Qt良好的封装机制使得Qt模块化程度非常高,代码可重用性较好,很方便用户开发丰富的API,Qt包含250个以上的C+类,并且有相应的帮助文档;支持2D 3D图形渲染,支持XML。Qt针对嵌入式环境推出了Qt Embeeded产品,Qt Embedded具有跨平台的特点,省掉了不少移植软件的功夫,用模块化设计,有弹性,Qt Embedded 最小可以缩到800KB左右,最多可以长到3MB(for Intel x86),使得Qt Embedded 更适合在嵌入式环境下生
12、存1,5-8,10-11。基于Qt跨平台的图形用户界面应用程序框架,用的是C+开发语言。C+语言简洁灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比,C语言具有可以直接访问物理地址的优点,与汇编语言相比又具有良好的可读性的可移植性。总得来说,C+语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。它操持了C的简洁、高效的接近汇编语言等特点,对C的类型系统进行了改革的扩充,因此C+比C更安全,C+的编译系统能检查出更多的类型错误。另外,由于C语言的广泛使用,因而极大的促进了C+的普及和推广。C+语言最有意义的方
13、面是支持面向对象的特征。虽然与C的兼容使得C+具有双重特点,但他在概念上完全与C不同,更具面向对象的特征。智能家居等将是一个发展的趋势,嵌入式产品也必将走入千家万户。而目前PC机的音频管理软件占用的磁盘空间以及内存较大所以基于Qt的音频管理系统的设计与实现有很重要的意义。基于这种形式的把握,也基于对这种技术的学习与理解,我选择了这个课题。对音频解码技术进行研究,有助于理解其内在的原理,能够帮助我们更好的实现代码功能。1.2 系统目标系统开发的总任务是设计并实现一个音频管理系统。通过本系统可以添加音频文件,以演唱者管理音频文件,以专辑管理音频文件2,4。你可以有一个播放列表,方便用户知道系统中有
14、哪些音乐文件。当然了有播放列表,就要有播放功能。选中歌曲,用户可以点击播放按钮,播放音乐文件。当然有相应的控制功能,上一曲,下一曲。基本的音量控制,音量的高低调节,静音功能。1.3 基于Qt程序的音频管理系统的设计的必要性随着计算机技术、电子技术和通信技术的迅猛发展,嵌入式系统已经成为最热门、最有前途的IT应用领域之一,成为通讯和消费产品的共同发展方向。它广泛应用于人们在工作生活的各个方面,几乎包括了所有的电器设备。在嵌入式技术快速发展的同时,嵌入式音频设备已然成为当今人类生活中的热点。对于这些音乐文件的管理也将成为程序员考虑的重点。各种设备中的操作系统的种类不同,程序员在开发的时候总是要做重
15、复的工作,不能把工作的重点放在设计上。基于Qt的平台正好给大家提供了一个这样的平台。代码不需要太多的改动,就可以运行在各种操作系统上。而且Qt是基于模块的设计思想,只需要加载你所需要的模块,符合嵌入式定制性强,模块简单的特点。所以基于Qt的音频管理系统非常的设计与实现非常必要。本系统主要基于Qt跨平台的图形用户界面应用程序框架,用的是C+开发语言,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。2 关键技术介绍2.1 音频编码的简单概念2.1.1
16、 采样率和采样大小声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线。波是无限光滑的,弦线可以看成由无数点组成,由于存储空间是相对有限的,数字编码过程中,必须对弦线的点进行采样。采样的过程就是抽取某点的频率值,很显然,在一秒中内抽取的点越多,获取得频率信息更丰富,为了复原波形,一次振动中,必须有2个点的采样,人耳能够感觉到的最高频率为20kHz,因此要满足人耳的听觉要求,则需要至少每秒进行40k次采样,用40kHz表达,这个40kHz就是采样率。采样率和采样大小的值越大,记录的波形更接近原始信号。2.1.2 有损和无损根据采样率和采样大小可以得知,相对自然界
17、的信号,音频编码最多只能做到无限接近,至少目前的技术只能这样了,相对自然界的信号,任何数字音频编码方案都是有损的,因为无法完全还原。在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准,并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。我们而习惯性的把MP3列入有损音频编码范畴,是相对PCM编码的。2.1.3 音频压缩技术PCM音频流的码率,采样率值采样大小值声道数 bps。一个采样率为44.1KHz,采样大小为16b
18、it,双声道的PCM编码的WAV文件,它的数据速率则为 44.1K162 =1411.2 Kbps。我们常说128K的MP3,对应的WAV的参数,就是这个1411.2 Kbps,这个参数也被称为数据带宽,它和ADSL中的带宽是一个概念。将码率除以8,就可以得到这个WAV的数据速率,即176.4KB/s。这表示存储一秒钟采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的音频信号,需要176.4KB的空间,1分钟则约为10.34M,这对大部分用户是不可接受的,尤其是喜欢在电脑上听音乐的朋友,要降低磁盘占用,只有2种方法,降低采样指标或者压缩。降低指标是不可取的,各种音频压缩编码所达
19、到的音质和压缩比都不一样。2.1.4 频率和采样率采样率表示了每秒对原始信号采样的次数,我们常见到的音频文件采样率多为44.1KHz,假设我们有2段正弦波信号,分别为20Hz和20KHz,长度均为一秒钟,以对应我们能听到的最低频和最高频,分别对这两段信号进行40KHz的采样,结果是:20Hz的信号每次振动被采样了40K/20=2000次,而20K的信号每次振动只有2次采样。显然,在相同的采样率下,记录低频的信息远比高频的详细。这也是CD数码声不够真实的原因,CD的44.1KHz采样也无法保证高频信号被较好记录。要较好的记录高频信号,看来需要更高的采样率,在捕捉CD音轨的时候使用48KHz的采样
20、率,这是不可取的!这其实对音质没有任何好处,对抓轨软件来说,保持和CD提供的44.1KHz一样的采样率才是最佳音质的保证之一,而不是去提高它。较高的采样率只有相对模拟信号的时候才有用,如果被采样的信号是数字的,不要去尝试提高采样率。2.1.5 流特征随着网络的发展,人们对在线收听音乐提出了要求,因此也要求音频文件能够一边读一边播放,而不需要把这个文件全部读出后然后回放,这样就可以做到不用下载就可以实现收听了。也可以做到一边编码一边播放,正是这种特征,可以实现在线的直播,架设自己的数字广播电台成为了现实。2.2 音频编码2.2.1 PCM编码PCM 脉冲编码调制是Pulse Code Modul
21、ation的缩写。我们不需要关心PCM最终编码采用的是什么计算方式,我们只需要知道PCM编码的音频流的优点和缺点就可以了。PCM编码的最大的优点就是音质好,最大的缺点就是体积大。我们常见的Audio CD就采用了PCM编码,一张光盘的容量只能容纳72分钟的音乐信息。2.2.2 WAV这是一种古老的音频文件格式,由微软开发。WAV是一种文件格式,符合RIFF (Resource Interchange File Format) 规范。所有的WAV都有一个文件头,这个文件头包含了音频流的编码参数。WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频
22、流进行编码。WAV可以使用多种音频编码来压缩其音频流,不过我们常见的都是音频流被PCM编码处理的WAV,但这不表示WAV只能使用PCM编码,MP3编码同样也可以运用在WAV中,只要安装好了相应的Decode,就可以欣赏这些WAV了。在Windows平台下,基于PCM编码的WAV是被支持得最好的音频格式,所有音频软件都能完美支持,由于本身可以达到较高的音质的要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。因此,基于PCM编码的WAV被作为了一种中介的格式,常常使用在其他编码的相互转换之中,例如MP3转换成WMA。2.2.3 MP3MP3作为目前最为普及的音频压缩格式,为大家所大量
23、接受,各种与MP3相关的软件产品层出不穷,而且更多的硬件产品也开始支持MP3,我们能够买到的VCD/DVD播放机都很多都能够支持MP3,还有更多的便携的MP3播放器等等,虽然几大音乐商极其反感这种开放的格式,但也无法阻止这种音频压缩的格式的生存与流传。MP3发展已经有10个年头了,他是MPEG(MPEG:Moving Picture Experts Group) Audio Layer-3的简称,是MPEG1的衍生编码方案,1993年由德国Fraunhofer IIS研究院和汤姆生公司合作发展成功。MP3可以做到12:1的惊人压缩比并保持基本可听的音质,在当年硬盘天价的日子里,MP3迅速被用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 qt 音频 管理 系统 设计 实现 学士学位 论文
限制150内