详细设计-基于Linux的mp3播放器设计与实现_第1页
详细设计-基于Linux的mp3播放器设计与实现_第2页
详细设计-基于Linux的mp3播放器设计与实现_第3页
详细设计-基于Linux的mp3播放器设计与实现_第4页
详细设计-基于Linux的mp3播放器设计与实现_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 Linux 的 mp3 播放器设计与实现摘要:在这个科技日新月异的时代, Linux 操作系统以其开源的环境以及稳定性在社会和市场上越来越具有竞争力,因此,熟练地掌握 Linux 的相关操作,Linux下的软件开发,是我们必须掌握的一门技术。而现代社会是一个物质相对丰富的时期,人们在追求物质享受的同时,越来越注重自己的精神享受,而作为一个音乐播放器来讲,是一个大家平时生活中都能接触到的一个软件,供人们茶余饭后消遣之用。音乐能够陶冶情操,也能够平静人们的心情,安抚受伤的心灵,给人以美好的享受,现在的音乐播放器大都是基于 Windows 操作系统的,因此做一个基于 Linux系统的音乐播放器非常必要。目前我国的计算机应用、计算机软件和电子相关类专业的人才培养方面,取得了长足的发展,但同时我们也深刻的感觉到缺乏实际开发设计项目经验,不善于综合运用所学理论,知识的把握缺乏融会贯通的能力有所欠缺等问题,为了顺应Linux 时代的潮流,锻炼自己在 Linux 下进行软件开发的能力,也为了让人们能够更好的享受生活,提高音乐播放器的友好性和实用性,我这次选择基于 Linux 的mp3 播放器设计与实现这个课题,通过使用 GTK 来实现图形界面的设计和 GStreamer技术来构建音频框架,通过 gtk 库自带的函数来控制数据流的状态和位置,从而实现一个基于 Linux 的简单 mp3 播放器,来丰富自己的编程经验。关键词:Linux 播放器 GStreamer GTK 指导老师签名:Design and implementation of mp3 player based on LinuxAbstract: In this era of science and technology change rapidly, the Linux operating system with its open source environment and stability in the society and the market more and more competitive, Therefore, skilled operation Linux software, Linux, is a technology that we must master. Modern society is relatively rich in a matter of time, people in the pursuit of material enjoyment at the same time, pay more attention to the spiritual enjoyment, and as a music player, is a normal life can come into contact with one of the most commonly used software, for people at ones leisure entertainment purposes. Music can edify sentiment, can calm the mood of people, to appease the injured heart, give a person with beautiful enjoyment, now the music player is mostly based on the Windows operating system, so do a music player based on Linux system is very necessary.At present, computer application, computer software and electronic related professional training, has achieved great development, but also let us deeply feel the lack of the actual development project experience, not good at using the theory knowledge, lack of the ability to digest deficient, In order to comply with Linux, the trend of the times, to exercise their ability of software development in Linux, and in order to allow people to enjoy a better life, enhance friendly and practical music player, the selection and implementation of the project design of mp3 player based on Linux, Through the use of GTK to realize the design and technology of GStreamer graphical interface to construct the audio frame, function through the GTK library has to control the location and status of data stream, so as to realize Linux based on a simple mp3 player, to enrich our experience in programming.Keyword: Linux player GStreamer GTKSignature of Supervisor:南昌航空大学东软班 详细设计报告 版本:0.1.03基于 Linux的mp3播放器设计与实现详细设计总页数 20 正文 17 附录 无 生效日期 20131229编制 批准南昌航空大学软件学院东软班 详细设计报告 版本:1.02修 改 履 历修改编号 日期 修改人 版本号 修改内容1 VER0.1.0 初始做成南昌航空大学软件学院东软班 详细设计报告 版本:1.05目 录1 文档概述 .41.1 文档目的和范围 .41.2 术语/缩略语 .41.3 参考文档 .42 处理 .52.1 模块数据结构定义 .52.1.1 全局变量定义 .52.2 模块功能实现 .52.2.1 模块内部函数 .5南昌航空大学软件学院东软班 详细设计报告 版本:1.061 文档概述1.1 文档目的和范围此文档是对基于 Linux 下的 mp3 播放器图形界面模块的详细设计描述,主要是描述了本模块与其它模块的接口函数和内部接口函数以及内部函数的定义、流程图和构成图以及测试项目的记述。1.2 术语 /缩略语序号 术语/缩略语 说明1 Makefile Makefile 是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新编译链接,但是不是所有的文件都需要重新编译,Makefile 能够纪录文件的信息,决定在链接的时候需要重新编译哪些文件,其还定义了编译链接的规则。2 vi Linux 里面的文本编辑器。 3 GTK Linux 下的图形工具包。 4 GStreamer Linux 下的流媒体应用的编程框架。5 GCC Linux 下的编译器6 GDB Linux 下的调试器1.3 参考文档序号 文档名 作者 时间 版本1 详细设计模板 东软提供 2007-11-9 0002 详细设计方法 东软提供 2007-11-9 0003 函数说明指南 东软提供 2007-6-4 1104 流程图指南 东软提供 2007-6-4 1105 概要设计 东软提供 2010-9 010南昌航空大学软件学院东软班 详细设计报告 版本:1.072 处理2.1 模块数据结构定义2.1.1 全局变量定义1.static GtkWidget *main_window; /程序图形界面主窗口2.static GtkWidget *play_button; /播放按钮3.static GtkWidget *pause_button; /暂停按钮4.static GtkWidget *stop_button; /停止按钮5.static GtkWidget *next_song_button; /下一曲6.static GtkWidget * previous_song_button; /上一曲7.static GtkWidget *time_label; /时间标签8.static GtkWidget *seek_scale; /进度显示 9.static GtkWidget *mytree; /树状歌曲列表10.static GtkWidget *lrc_label; /歌词显示标签2.2 模块功能实现2.2.1 模块内部函数2.2.1.1 file_open【函数式样】函数名 file_open文件名 function.c功能概要 打开文件记述形式 void file_open(GtkAction *action) 参数类型 变量名 I/O 说明南昌航空大学软件学院东软班 详细设计报告 版本:1.08GtkAction* action I 文件打开的事件类型 void 说明- -返回值值- -详细说明打开文件菜单使用注意事项无【函数处理流程】开始创建一个选择对话框是否选择了文件获取文件名 , 创建播放文件的进程是结束否图 1 文件打开流程图南昌航空大学软件学院东软班 详细设计报告 版本:1.092.2.1.2 file_quit【函数式样】函数名 file_quit文件名 function.c功能概要 关闭文件对话框记述形式 void file_quit(GtkAction *action)参数类型 变量名 I/O 说明GtkAction* Action I 关闭文件的事件类型 void 说明- -返回值值- -详细说明退出文件对话框使用注意事项无【函数处理流程】开始调用系统退出函数结束图 2 退出菜单流程图南昌航空大学软件学院东软班 详细设计报告 版本:1.0102.2.1.3 help_about【函数式样】函数名 help_about文件名 function.c功能概要 关闭文件对话框记述形式 void help_about(GtkAction *action)参数类型 变量名 I/O 说明GtkAction* Action I 帮助菜单事件类型 void 说明- -返回值值- -详细说明帮助使用注意事项无南昌航空大学软件学院东软班 详细设计报告 版本:1.011【函数处理流程】开始创建帮助对话框结束设置对话框名字 、 版本等信息显示帮助对话框图 3 帮助流程图2.2.1.4 play_clicked【函数式样】函数名 play_clicked文件名 function.c功能概要 播放记述形式 void play_clicked(GtkWidget *widget, gpointer data) 参数类型 变量名 I/O 说明GtkWidget* widget I 播放按钮指针gpointer data I 数据参数类型 void 说明返回值值 - -南昌航空大学软件学院东软班 详细设计报告 版本:1.012- -详细说明按下该按钮进行音乐的播放。使用注意事项无【函数处理流程】开始是否有 m p 3 文件是否创建好管道进程更新播放状态结束是是否否图 4 播放按钮流程图2.2.1.5 pause_clicked【函数式样】函数名 pause_clicked文件名 function功能概要 暂停一首音乐记述形式 Void pause_clicked(GtkWidget *widget, gpointer data) 南昌航空大学软件学院东软班 详细设计报告 版本:1.013参数类型 变量名 I/O 说明GtkWidget * widget I 暂停按钮指针gpointer data I 数据参数类型 void 说明- -返回值值- -详细说明暂停一首音乐,如果再次按下播放按钮会从断点处开始播放使用注意事项无【函数处理流程】开始是否暂停按钮被按下过更新播放状态为暂停结束否设置管道状态为暂停设置管道状态为播放更新播放状态为播放是图 5 暂停按钮流程图南昌航空大学软件学院东软班 详细设计报告 版本:1.0142.2.1.6 stop_clicked【函数式样】函数名 stop_clicked文件名 function.c功能概要 停止一首音乐记述形式 void stop_clicked(GtkWidget *widget, gpointer data) 参数类型 变量名 I/O 说明GtkWidget * widget I 停止按钮指针gpointer data I 数据参数类型 void 说明- -返回值值- -详细说明停止一首音乐,当再次按下播放按钮的时候开始从头播放一首音乐使用注意事项无南昌航空大学软件学院东软班 详细设计报告 版本:1.015【函数处理流程】开始清空文件名将时间置为 0回收元件占用的资源更新播放状态为停止结束图 6 停止按钮流程图2.2.1.7 gui_update_time【函数式样】函数名 gui_update_time文件名 function.c功能概要 播放时间更新记述形式 void gui_update_time(const gchar *time, const gint64 position, const gint64 length) 参数类型 变量名 I/O 说明const gchar * time I 当前时间南昌航空大学软件学院东软班 详细设计报告 版本:1.016const gint64 position I 数据流当前的位置const gint64 length I 音乐数据流总长度类型 void 说明- -返回值值- -详细说明时间更新并确定滑块的位置从而确定音乐的播放位置使用注意事项无南昌航空大学软件学院东软班 详细设计报告 版本:1.017【函数处理流程】开始更新 l a b e l 上的时间比较当前时间和当时歌词链表的时间 , 判断歌词是否要更新更新歌词显示判断歌曲的长度是否大于 0设置滑块的位置屏蔽滑块移动的信号 n o _ s e e k = T R U E开启滑块移动的信号 n o _ s e e k = F A L S E结束是否是否图 7 时间更新流程图南昌航空大学软件学院东软班 详细设计报告 版本:1.0182.2.1.8 build_gstreamer_pipeline【函数式样】函数名 build_gstreamer_pipeline文件名 function.c功能概要 创建图形界面记述形式 gboolean build_gstreamer_pipeline(char* uri)参数类型 变量名 I/O 说明char* uri I 歌曲名类型 gboolean 说明TRUE 播放音乐的进程被创建返回值值FALSE 播放音乐的进程创建失败详细说明创建播放音乐的进程使用注意事项无南昌航空大学软件学院东软班 详细设计报告 版本:1.019【函数处理流程】开始创建管道

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论