资源描述
毕业设计(论文)开题报告
题 目:基于Linux的mp3播放器设计与实现
学 院:
专业名称:
班级学号:
学生姓名:
指导教师:
填 表 日 期 2013 年 12 月 03 日
南昌航空大学软件学院东软班 开题报告 版本:V1.0
一、 选题依据、目的和意义
在这个科技日新月异的时代, Linux操作系统以其开源的环境以及稳定性在社会和市场上越来越具有竞争力,因此,熟练地掌握Linux的相关操作,Linux下的软件开发,是我们IT学子必须掌握的一门技术。而现代社会是一个物质相对丰富的时期,人们在追求物质享受的同时,越来越注重自己的精神享受,而音乐播放器,是一个大家日常生活中都能接触到的一个最为常用的软件,供人们茶余饭后消遣之用。音乐能够陶冶情操,也能够平静人们的心情,安抚受伤的心灵,给人以美好的享受,现在的音乐播放器大都是基于Windows操作系统的,因此做一个基于Linux系统的音乐播放器非常必要。
随着计算机多媒体技术的高速发展,各类集计算机、通信、消费电子产品等特征于一体的电子产品得以广泛应用,而这类产品对当前播放器也提出了更高的要求,同时,随着Linux系统的广泛使用,Linux系统上多媒体技术应用要求更为凸显。目前使用于桌面操作系统的媒体播放器发展较快,通常具有强大的音乐播放功能和友好的用户界面,而基于Linux下的mp3播放器,由于国内一般用户对Linux系统还不太熟悉,因此提前开发一个功能实用,运行速度快,占用空间小,操作和应用友好方便的播放器,在Linux操作系统普及以后将会非常具有使用价值,而本项目的音乐播放器就以此为出发点。
目前我国的计算机应用、计算机软件和电子相关类专业的人才培养方面,取得了长足的发展,在看到美好前景的时候也存在着一些问题,比如说缺乏实际开发设计项目经验,不善于综合运用所学理论,对知识的把握缺乏,融会贯通的能力有所欠缺。为了顺应Linux时代的潮流,锻炼自己在Linux下进行软件开发的能力,也为了让人们能够更好的享受生活,提高音乐播放器的友好性和实用性,我这次选择基于Linux的mp3播放器设计与实现这个课题,考虑到GStreamer是 GNOME 桌面环境下用来构建流媒体应用的多媒体框架(framework),其主要目的是要简化音/视频应用程序的开发,目前已经能够被用来处理MP3、Ogg、MPEG2、AVI、Quicktime等多种格式的多媒体数据【1】。而GTK+(本文中使用其另一个简要名称GTK)最初是GIMP的专用开发库,后来发展为类Unix系统下开发图形界面的应用主流开发工具之一。GTK是自由软件,并且是GNU计划的一部分,GTK的许可协议是LGPL【2】。因此这次项目将使用GTK和GStreamer技术来实现一个简单mp3播放器,希望能够通过这次项目来提升自己,丰富自己的编程经验。
二、国内外研究现状及发展趋势
随着现代科技的迅猛发展,先进的科学技术尤其是网络与计算机技术已经在人类的工作和生活中发挥着极其重要的作用,占据人们生活的很大部分,而作为一种供人们娱乐消遣的mp3软件更是成为人们生活中不可或缺的一部分。作为发达国家,基于Linux下的播放器起步较早,到现在已经卓有成效,而像我们这种发展中国家,由于技术落后和起步较晚等问题,对Linux下的软件开发还不是很熟练,不过随着经济的发展,科技的进步,其发展速度一定会非常快。
2.1国外现状及发展趋势
由于国外电子信息技术起步较早且发展迅速,而且对Linux系统的重视程度非常高,因此各类mp3播放器软件种类繁多,让人眼花缭乱,其技术也已经基本成熟。在Linux上流行的播放器主要有以下几种:Freeamp,Xmms,RealPlayer,Winamp,Xmcd,Xmovie,QuickTime,Mplayer等,下面对这些媒体播放器进行分析介绍【3】。
① Mplayer
Mplayer是Linux下的电影播放器,他的功能十分强大,它能够播放众多格式的文件。Mplayer能使用众多本地的Xanim,RealPlayer和Win32DLL编析码器,播放大多数MPEG、VOB、Ogg、ASF/WMV文件,也能播放VideoCD、SVCD、DVD格式的电影。Mplayer的另一个大特色是支持广泛的输出设备,可以在X11、Xv、OpenGL等下工作【3】。
② Xmms
Xmms是X-Window系统下最流行的多媒体播放器之一,大多数Linux版本都捆绑了该产品作为Linux下的标配音频播放器。其可以播放MP3、Wav等多媒体文件,而且只要提供相应的插件,他还可以支持更多的多媒体类型【3】。
③ Xmovie
Xmovie最早是作为电视节目的播放软件。它的界面非常简单。界面上除了播放、快进、快退、播放时间显示和播放进度这几个主要的功能外,没有其他的控制功能,界面上的菜单不含有任何播放控制功能,基本上都是对播放画面的调整和环境变量的控制。支持.mpg、.vob、.m2v等视频格式,同时能够播放mp3音频格式的文件【3】。
④ RealPlayer
RealPlayer在低带宽下支持音频、视频多媒体的低损失传输,同时具有优秀的流媒体在线播放能力。RealPlayer for Linux版本的操作界面与Windows平台下的版本类似【3】。
以上的Linux媒体播放器中所应用的技术已经到了相当成熟的水平,并且为人们所接受,满足了人们对音乐的需求,是人们选择播放器的最佳对象。
2.2国内现状及发展趋势
目前国内的基于Windows平台下的mp3播放器类软件相当多,且已经达到了顶峰。这些软件基本上都能满足人们对音乐的各种需求,包括简单的播放、暂停、快进、上一曲、下一曲,以及复杂的一些操作,如:歌词的显示、字体的放大和缩小、播放器背景的切换、在线听音乐、跟唱等。但是随着Linux的开源以及其操作系统的稳定性等优点,其影响力也是日益凸显,而目前国内基于Linux操作系统的mp3播放器软件还是非常的少,但随着时代的发展,人们意识的进步, Linux下的软件开发必然会越来越受重视,因此基于Linux操作系统的mp3播放器的设计与开发是具有前瞻性的。
三、研究的主要内容及实验方案
3.1毕业设计的主要研究内容
基于Linux系统上mp3播放器设计与实现,主要采用GTK和GStreamer分别作为图形界面设计和流媒体框架工具,纯C语言编写,用vi编辑器来书写程序代码,通过编写Makefile文件来定义编译规则,用make工具来生成可执行文件。
GStreamer的程序开发框架使得编写任意类型的流媒体应用程序成为可能。在编写处理音频、视频或者两者都有的应用程序时,GStreamer可以简化编程者的工作。GStreamer并不受限于音频和视频的处理,它能够处理任意类型的数据流,管道设计的方法对于实际应用的滤波器几乎没有负荷,它甚至可以用来设计对延时有很高要求的高端音频应用程序【4】。而GTK是Linux下开发图形用户界面程序的主要框架,通过回调函数,就可以实现GTK和GStreamer信号注册功能。其中,回调函数是一种非显式调用的函数,它是一种将自己的地址(函数指针)传给别的函数来间接调用自己的编程方式。在使用回调函数时必须首先定义函数指针,然后才能使用函数指针实现回调【5】。
本次基于Linux系统下的mp3播放器设计与实现,功能主要有:播放、暂停、停止、上一曲、下一曲、播放时间显示、进度条显示和调节、歌词的显示、歌曲列表、模式的选择和设置、MV以及动态加载音乐等。希望在能够通过这次项目不断的学习,提升自己。
3.2实验方案
(1)UI设计,主要是音乐播放界面的设计与实现。
(2)音乐播放模块,从歌曲的树状列表中选中一首音乐或者是通过文件菜单动态地加载一首音乐,并能够正确播放该音乐。
(3)音乐控制模块,主要实现音乐的暂停、播放、停止、上首、下首、模式的选择。
(4)菜单模块,帮助菜单主要对本播放器做一个简要说明,文件菜单则是允许选择一个mp3文件然后进行播放。
(5)附加模块,主要是歌词显示与匹配以及歌曲进度的显示与调节功能的设计与实现。
(6)定义项目的编译链接规则,将其写到Makefile文件当中,通过make工具生成可执行文件。
四、目标,主要特色及工作进度
4.1目标:
结合GTK和GStreamer实现一个图形界面mp3播放器。
具体目标如下:
(1)了解基于Linux下应用程序的设计和开发过程。
(2)了解并熟练掌握Makefile文件的编写。
(3)了解GTK以及GStreamer流媒体应用程序框架的使用。
(4)界面设计合理,用户界面友好。
(5)能够方便的选择本机的一个mp3文件进行播放。
(6)具有播放、暂停、停止、模式选择功能,并且可以用一个滚动条来显示当前的播放位置,拖动滚动条可以调节mp3文件的播放位置。
(7)在面板上显示播放时间,时间和进度每0.2s刷新一次。
(8)提供文件选择和关于菜单,并保证退出按钮能够正常的结束程序。
4.2主要特色:
(1)基于Linux操作系统下的应用程序,顺应潮流。
(2)mp3播放器界面简洁,便于操作。
(3)在Linux下的mp3播放器功能强大,能够满足各类人群对音乐的需求,以及能够完成各类复杂的操作,包括歌词显示、进度调整等功能。
(4)采用GTK设计图形界面,GStreamer来设计流媒体框架,两者相结合。
(5)软件小巧灵活,操作简单,便于掌握。
4.3工作进度:
第一阶段:
2013.11.25-2013.12.03 论文开题,主要完成开题报告,确定毕业设计研究题目和方向。
第二阶段:
2013.12.04-2013.12.10 完成项目中需求分析阶段。
第三阶段:
2013.12.11-2013.12.18 完成项目概要设计阶段。
第四阶段:
2013.12.19-2013.12.29 完成项目详细设计阶段。
第五阶段:
2013.12.30-2014.01.05 完成中期检查报告。
第六阶段:
2014.01.06-2014.01.20 完成项目编码及测试阶段。
第七阶段:
完成项目,备齐相关文档,制作答辩PPT并做好答辩的准备。
五、主要参考文献
[1] 多媒体开发框架GStreamer 开源社区网
[2] Wim Taymans, Steve Baker, Andy Wingo, Ronald S. Bultje, and Stefan Kost. GStreamer Application Development Manual (0.10.21.3)[M]. Open Publication License. 2009.
[3] Linux下的播放器 摘自百度文库
[4] Jon Masters, Richard Blum, Professinal Linux Programming[M]. Wiley Publishing, Inc. 2007: 319-340
[5] 何世勇 基于GTK的GUI编程[J] 中国水运(理论版),2006,4(3):165-166
[6] GCC技术参考大全 清华大学出版社
[7] 崔尚卿 《基于Gnome/GTK+的图形界面的几个实现技巧[J]》,计算机时代,2005
[8] 王世江(改编),鸟哥(作者) 《鸟哥的Linux私房菜》人民邮电出版社,第3 版 (2010年7月1日)
[9] 赵毅,马捷 《利用Python和GTK+的Linux GUI应用的快速开发[J]》,计算机工程,2004
6
展开阅读全文