1、目录1. 需求分析31.1课题背景31.1.1 音频播放器简介31.1.2 目的和意义31.2 功能需求31.3 进度安排42概要设计42.1系统需求用例设计:43.详细设计63.1播放器界面63.2添加各空间类向导73.3音乐浏览控件:73.4播放功能控件:83.5暂停功能控件:83.6停止功能控件:93.7音量控制功能控件:93.8版权说明功能控件:93.9退出系统功能控件:103.10界面美化:103.11软件图标美化:114. 课程总结115.参考文献12 1. 需求分析1.1课题背景1.1.1 音频播放器简介 音频播放器(audio player)是一种可储存、组织与播放音讯档案格式
2、的装置。常被称为“MP3播放器”(因为MP3格式的普遍性),它可以播放很多其他的格式,如WMA,AAC,WAV等。一些格式会跟有限制性的技术 DRM合并, 比如Janus和FairPlay, 一般是一些付费下载网站的一部分。其它一些格式则是完全的专利自由或者在另外一些方面开放,比如Ogg Vorbis,FLAC,Speex (Ogg开放多媒体工程的所有部分),以及Module file格式。1.1.2 目的和意义 通过独立设计完成制作一个播放器软件,更加理解了MFC单文档和多文档程序的构成框架,以及各个类之间数据传递的关系。同时,对鼠标和键盘的多消息响应有了进一步的认识。在设计制作的过程中,C
3、+语言是基础,在熟悉MFC Windows 程序设计的同时,也复习了C+程序语言设计。1.2 功能需求 随着社会的发展,有越来越多的人接触电脑,也有越来越多的人喜欢在上网、工作的时候,播放一点音乐,娱乐一下,缓解一下。所以,应运而生的是音频播放器软件,能够为用户播放常见的格式音频文件。并且,在使用的过程中,也尽可能设计出一些人性化的设计。比如,能最小化到托盘并可以进行操作。良好的人机交互界面,也能给人以美好的感官享受。 利用 MFC 应用程序、媒体控制接口 MIC 的基本知识,设计一个 MP3 播放器。要求能够浏览本地音乐文件,播放常用 Windows 音频格式的文件;实现播放控制:播放、暂停
4、、停止等; 实现音量控制:静音、声音放大减小;软件说明;退出系统。1.3 进度安排第一周 一 确定课题,编写需求分析 二 绘制系统需求用例图 三、四 界面设计,编写代码第二周 一 设计界面 二 程序调试 三 总结及参考文件 2概要设计2.1系统需求用例设计: 本次设计的MP3播放器,是一个面向对象的简单MFC框架。用户点击软件开启直接进入音乐播放界面,界面设计美观简洁。可浏览本地文件,并添加音乐文件进入软件进行音乐播放。能够实现MP3的基本功能,音乐 播放时能够进行,暂停停止,音量调节功能。 系统功能需求用例图3.详细设计3.1播放器界面控件功能代码及其截图3.2添加各空间类向导3.3音乐浏览
5、控件:/ TODO: Add your control notification handler code herechar szFileFilter=mp3文件(*.mp3)|*.mp3| wma文件(*.wma)|*.wma|wav文件(*.wav)|*.wav|所有文件(*.*)|*.*|;CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);if (dlg.DoModal()=IDOK)CString strFilepath=dlg.GetPathName();CString strFilename=dlg.GetF
6、ileName();SetDlgItemText(IDC_filename,strFilename);Load(this-m_hWnd,strFilepath);GetDlgItem(IDC_play)-EnableWindow(TRUE);GetDlgItem(IDC_pause)-EnableWindow(TRUE);GetDlgItem(IDC_stop)-EnableWindow(TRUE);3.4播放功能控件:/ TODO: Add your control notification handler code hereplay();3.5暂停功能控件:/ TODO: Add your
7、 control notification handler code hereCString strtemp;GetDlgItemText(IDC_pause,strtemp);/获取按钮状态if (strtemp.Compare(暂停)=0)pause();SetDlgItemText(IDC_pause,恢复);if (strtemp.Compare(恢复)=0)resume();SetDlgItemText(IDC_pause,暂停);3.6停止功能控件:/ TODO: Add your control notification handler code herestop();GetDl
8、gItem(IDC_play)-EnableWindow(FALSE);GetDlgItem(IDC_pause)-EnableWindow(FALSE);3.7音量控制功能控件:/ TODO: Add your control notification handler code hereUpdateData(TRUE);m_int=m_slider.GetPos()/10;setvolume(DWORD)m_slider.GetPos();UpdateData(FALSE);*pResult = 0;3.8版权说明功能控件:/ TODO: Add your control notificat
9、ion handler code hereCAboutDlg dlg;dlg.DoModal();3.9退出系统功能控件:/ TODO: Add your control notification handler code hereCDialog:OnCancel();3.10界面美化:为OnPaint类中添加如下消息函数: CPaintDC dc(this); / device context for painting CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmp
10、Background; bmpBackground.LoadBitmap(IDB_BITMAP3); /IDB_BITMAP是你自己的图对应的ID BITMAP bitmap; bmpBackground.GetBitmap(&bitmap); CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground); dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY); / Do not call CDialog:OnPai
11、nt() for painting messages3.11软件图标美化:4. 课程总结 这一次的课程设计,对我个人来说是相当有难度的,但是在队友的帮助下最后还是圆满的完成了这次设计过程。在设计的过程中,有很多问题不是很清楚,所以走起来就很困难。有时候在遇到问题的时候,基本知识都了解,但是不知道怎么把他们整合起来,知识没有形成系统,都是很零散的东西。而且,由于以前的基础知识不够牢固,是的我在这次课程设计中感到更加的困难。 在设计的过程中,每走一步就会发现,思路想出来很容易,但涉及到实现的时候,总是有点手足无措。对于我的这次课程设计,里面还有很多要改进的地方。在播放器的界面上虽然有音量的调节,但
12、是没有有真正的实现还有的MP3基本功能也未实现:如歌词显示,可以大批量的储存音乐文件。 当然一个程序的顺利出炉,少不了的就是反复的调试和更改。在调试的过程中,总会发现很多错误,在解决这些错误的同时,开始很模糊的概念,就会越来越清晰。其实有很多错误都是很类似的,只要解决了一个,其他的也就迎刃而解了。最后就是界面美化阶段的实现, 一个好的软件不仅要做到满足用户的基本需求,还要做到界面的美观得体,让人有着耳目一新的感觉,这样才能吸引用户来使用这个软件。 本次课程设计的结束虽然完成了一个学校软件,但是综合来说还是不令人满意的,可能是因为我们先阶段的知识不足,我相信在以后的课程学习中,我更加完善我们的不足之处。其实,这一个程序的完成,并不是我一个人的功劳。有很多不懂的地方就会向别人请教,队友之间的相互帮助,确实能够解决很多问题。5.参考文献 1.MFC Windows应用程序设计(第二版)Z,北京:清华大学出版社,2007 任哲编著2.C+程序设计教程设计思路与实现清华大学出版社 钱能 编著3.Visual C+应用教程 人民邮电出版社