2024年1月5日发(作者:)

`

本科毕业论文(设计)开题报告书

题 目

基于QT的音乐播放器的设计

院 系

电子工程系

年级专业

电嵌Q0941

姓 名

饶文利

学 号

091602013

指导教师

沈田

职 称

讲师

开题时间

2012.12

1

1、 本选题研究的目的及意义

Qt是一个1991年由奇趣科技开发的跨平台c++图形用户界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。Qt Creator是跨平台的 Qt IDE, Qt Creator

是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。

本系统设计目标是设计并开发实现一个音乐播放器,能够播放各种类型的音频文件。设计的音乐播放器包含了添加、删除歌曲,上一曲,播放、暂停,下一曲,播放模式等 ,基本上一个音乐播放器该有的功能,用QT设计出来的播放器都有,并且可以显示歌词和更换皮肤。用QT设计,节省了代码量,还可以用于嵌入式平台的移植。尽管此播放器在稳定性、视觉效果、歌曲库的大小等方面都比不上当今的播放器,但它具有小巧,长时间听歌后占用硬件空间小等特点,而且在其他QT平台下重新编译后可以在当前平台下运行。

2、本选题国内外研究状况综述

美通社-PR Newswire芬兰埃斯波和挪威奥斯陆1月28日电,诺基亚 (Nokia)

(NYSE:NOK) 和 Trolltech ASA 宣布,双方已经签署了一份协议。根据该协议,诺基亚将作出一份公开自愿收购要约,以收购总部位于挪威奥斯陆并在奥斯陆证券交易所

(Oslo Stock Exchange) 公开上市的公司奇趣科技 (Trolltech)。奇趣科技是公认的软件供应商,拥有世界级的软件开发平台和架构。诺基亚在收购挪威Trolltech公司时获得了QT软件资产,在该芬兰巨头2011年放弃自主系统转用微软Windows Phone前,QT软件一直处于诺基亚战略的核心部分。诺基亚将为正在不断升温的新版本的Qt开源用户界面和应用框架发布一个新版本。其中新增加的Qt 4.6版本,为普遍的Symbian手机操作系统提供支持。

在2011年三月份Nokia将Qt团队外包给了芬兰的一家名叫Digia的公司。据国外媒体thenextweb报道,今天Nokia正式将Qt开源软件技术卖给了

Digia。而Digia预计在掌管这个项目后将其推广到Android、iOS和Windows 8 平台。Digia主要目标是

2

借助Qt生态系统加强自身的研发能力,并且将这项技术推广到Android和iOS智能手机平台,也包括了微软的Windows 8系统,之前Nokia就有意在平板上使用Windows 8系统。使用Qt的公司包括三维建模(AutoDesk Maya)、Adobe Photoshop Elements(Adobe图像处理)、Skype、 VLC 播放器。欧洲太空总署、谷歌、HP、卢卡斯影业和Opera移动浏览器也都有使用Qt技术。目前有45万名开发者使用QT软件开发应用,覆盖70个行业。好多程序开发者看重Qt,原因是Qt具有很多优点,如跨X11, Win32, Mac三个平台并且是二进制原生代码的(比java和.net程序快得多)(源代码级移植),有个十分好使用的工程管理工具qmake((相比较wxWidget, Gtk+等而言,非常地方便开发),在常用的X11, Win32平台既有开源版,又有商业版,供不同的用途使用。又有公司的商业支持,开发正规。有KDE(包括KOffice, KDevelop等)这样典型的的成功运用的项目,使人放心。随着Qt 4.0开源版的发布,KDE向Windows的移植已经确定,由此,KDevelop, KOffice等一大批KDE下面的软件也就能移植过去, 有了KDevelop,KWrite等,Windows下Qt的应用将很快多起来,也更加方便开发,我在期待着KDevelop移植到Windows,以解决Windows下的用QT开发的IDE问题。

3、本选题研究的主要内容及写作提纲

第一章: 绪论

时下,音乐播放器已经成为人们生活中不可或缺的必备品。它的诞生,让动听的声音有了存储的载体,得以广泛的传播和分享。各种平台开发的音乐播放器层出不穷,但是用Qt Creator开发的音乐播放器小巧而功能齐全,方便移植到嵌入式平台下或其他平台下,只需一次编译就可在不同平台下运行播放。随着现在科技的发展,越来越多的嵌入式设备已经被广泛应用于生活中,因此嵌入式软件的开发对于嵌入式系统设备的发展有着非常重要的意义。比如linux系统对各种设备的广泛支持性,能方便应用与电脑、手机、汽车及工业等。嵌入式系统在众多领域的应用带来了便利,提高了我们的生活质量,尤其是消费电子产品潜力是巨大的。随着生活的普遍提高,功能强大、专用性强的嵌入式音乐播放器已经成为人们需求的重点,所以,在嵌入式系统上开发音乐播放器是当前热门的技术之一。

Qt以其优良的跨平台特性,强大的功能,良好的移植性使之逐渐成为广泛应用的GUI系统,因此,基于Qt的嵌入式系统中实现音乐播放器具有重要的价值。如今,PC机中音频文件越来越多,各种播放器功能特点不同,有些功能强大却占用系统资源多,有些软件小却不支持多种音频格式。通过比较多款音乐播放器的特点,本文提出一套适用于嵌入式系统的媒体播放器框架方案,该方案是基Qt集成开发环境,具有体积小,支持播放格式多,系统资源占用少,支持播放列表等。

第二章: 项目要实现的功能

3

本选题是基于QT的音乐播放器,包括音频文件的添加与删除,下一曲,上一曲,播放与暂停,播放模式,显示歌词等。

具体功能如下:

(1)播放状态显示:

1.用户界面能显示正在被播放的歌曲的进 度,显示歌曲的播放状态;删除歌曲,

从音乐播放器中删除选定的歌曲;

2.用户能够显示正在被播放歌曲的音量;

3.用户界面能够显示被播放歌曲的歌名。

4.用户界面能够显示歌词和桌面歌词

(2)播放控制:

1.用户能够控制正在被播放歌曲的进度;

2.用户能调节正在被播放歌曲的音量;

3.用户能够控制歌曲停止、暂停与播放;

4.用户能够切换上一首、下一首歌曲。

(3)列表中歌曲管理:

1.在歌曲列表中用户能添加所需的歌曲文件的 文件名,并长期保存在该列表中,

直到用户 删除该列表中的歌曲名。

(4)核心播放控件:

1.能够打开MP3文件,并将其解码,然后启动音频硬件播放歌曲。

第三章: 项目的详细实现

(1)首先来了解一下 Qt中Phonon 多媒体框架:

Phonon是什么?Qt从4.4版本开始提供的一套多媒体框架提供多媒体回放的功能。目前在Qt 4.6中实现多媒体播放图形界面主要依赖于Phonon框架,其实Qt中还有一个Multimedia模块,帮助文档中对它的描述是,实现底层的多媒体播放功能,在一般情况下上层的接口Phonon模块更适合实现这些功能。Phonon最初是一个源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。应用程序不用去管多媒体播放是通过什么实现的,如gstreamer、xine,只需调用相应的接口就行,但这中间需要一个中转,被称为backend。Qt也是通过Phonon来实现夸平台的多媒体播放。

Phonon 有三个基本概念:媒体对象、接收端和路径。一个媒体对象管理一个媒体源,比如一个音乐文件,它提供了简单的播放控制,比如开始、停止和暂停播放。一个接收端输出来自 Phonon的媒体,比如,通过提供录像到一个窗口,或者通过提供声音到一个声卡上。路径是用来连接 Phonon对象的,比如,一个媒体对象和一个接收端,从而构成了 Phonon 中的 media graph。音乐的播放是由 media object 启动和管理的并且 media object 把媒体流发送给通过路径(path)连接到它的接收端(sink)

4

继而接收端(sink)通过声卡播放媒体流。

(2)在 Qt的应用开发中,使用了很多媒体变量,在音乐播放器开发设计中使用到的媒体变量如下所示:

Phonon::MediaObject* :媒体对象,管理媒体源

Phonon::AudioOutput* :音频输出,连接物理设备

Phonon::SeekSlider* :播放进度滑竿,实现进度条

Phonon::VloumeSlider* :音量滑竿,实现音量大小调节

QList :音乐资源列表,实现播放列表

(3)Qt设计播放器涉及到的几种重要类:

MediaObject Class :主要提供一个能够处理媒体播放的介面。 MediaObject可说是处理多媒体档案最基本的一部份,它接受并管理来自於MediaSource的媒体档案。而媒体播放、暂停与停止都是由它来控制,而在此之前,media物件必须要与output

node连接,这个nodes主要将媒体输出至底层的硬体,例如音效卡或显示卡等,而所需要的output node则是根据多媒体的内容而所不同。目前Phonon有两种output node:AudioOutput声音播放,VideoWidget影像播放。

AudioOutput Class :主要是用来把多媒体的声音送到声音输出装置。所以它能够经由类似喇叭等输出装置来播放声音,稍早有提过,多媒体资料的来源必须要经过Phonon::createPath()由MediaObject连接。

SeekSlider Class :提供一个可滑动的slider来设定多媒体串流播放的位置,即播放进度条,所以它会连接到MediaObject,并控制串流目前的位置。

VolumeSlider Class :提供可以控制声音装置音量的widget。 用法其实与上面的SeekSlider类似。

第四章: 测试与运行

本播放器在开发完成后,进行了黑盒测试,具体测试内容如下:

1)重复打开关闭程序,看系统会不会产生错误。

2)在播放过程中多次点击播放、暂停和停止按钮,看每次点击是否都可以产生相应效果。

3)在播放列表中添加各种类型的视频媒体文件,看是否能够播放各类文件。

4)随机通过拖动播放进度条来控制播放进度。

5)通过随机输入时间来进行播放定位。

6)随机调整音量的大小。

以上6点测试的通过,基本保证了此播放器可以进行播放、暂停、添加文件、控制播放进度和音量的功能。由于时间的仓促,本次设计基本上完成了预期的目标,实现了播放、暂停、停止、上一曲、下一曲、播放列表以及音量调节和时间显示,实现了一

5

个小巧并支持多种格式的基于QT的音乐播放器。

第五章: 总结

这个软件设计的目的就是制作一个能够播放音频的播放器。在播放的文件方面,可播放本地的音频文件在功能方面,它具备一些基本的音乐操作处理功能(暂停、播放、音量调节、拖动、停止等),此播放器是在Windows操作系统下的QT4集成环境下完成的,QT是跨平台的开发软件,只要将此播放器的代码在其他QT能够运行的平台上重新编译就可以在当前平台上运行。

本设计的创新点是系统具有很好的可移植性,它的实现过程以及核心的代码对类似应用具有很好的可重用性,只需通过较小的修改就能移植到不同的操作系统和平台上,可以广泛使用在各种嵌入式系统中,如PDA,智能手机等方面,具有较高的经济价值,同时也可以为开发其他嵌入式系统软件提供参考意见;并支持播放控制、播放列表等功能。虽然设计的音乐播放器版本已经很多,但是能实现并量身打造一款属于自己的播放器,还是很不错的决定。

4、主要参考文献

[1] 《24小时学通QT编程》 著:Daiel Solin 译:袁鹏飞 人民邮电出版社

[2] KDE2/QT 编程宝典 电子工业出版社

[3] ARM嵌入式linux系统开发 电子工业出版社

[4]d 环境高级编程[M].人民邮电出版社,2006.

[5]n And JOSEE Lajoie And .C++PramerPlus[M].第五版.人民邮电出版社

[6] Jasmin Blanchette And MarkSummerfield.C++GUIProgram-mingwithQT4[M].第二版.电子工业出版社,2008.

[7]蔡志明,卢传富等.精通Qt4编程[M].电子工业出版社,2008

5、完成措施及进度安排

第一阶段:资料文献查询、系统分析(2012.11.20 -- 2012.12.02)

这一阶段主要是查阅图书和网络资料,多了解本课题的现状、市场需求、一些公司的研究情况等,明确选择本课题的意义,并确定本项目要完成的具体功能,制定详细的进度和实施措施。

第二阶段:软件分析、软件设计(2012.12.03 -- 2013.01.10)

这个阶段在明确了设计目标之后,进行软件的分析和模块设计,对每个子系统的每个功能拟定实现方案,明确整个项目的框架以及各个功能的连接和切换等。并对需要掌握的技术进行进一步的巩固,为下一阶段的实现打好基础。

6

第三阶段:编码(2013.02.13 – 2013.03.15)

这个阶段是本项目的重点和中心,在理解掌握了整体的设计思路之后,对每个模块进行软件的编写,再整合成完整的程序。

第四阶段:测试与部署以及撰写论文(2013.03.06 – 2013.05.01)

最后一个阶段是对编好的程序进行测试,对不够理想的地方进行修改完善,让整个设计的每个模块都能理想的工作,并且让整个系统切换自如,各个子系统都能实现相应的功能。完成设计之后就开始着手论文的准备了。

7

指导教师意见

签名:

年 月 日

院(系)审核意见

1、通过; 2、完善后通过; 3、不通过

院(系)公章

年 月 日

8