音乐播放器课设报告要点.docx
- 文档编号:4008195
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:24
- 大小:387.35KB
音乐播放器课设报告要点.docx
《音乐播放器课设报告要点.docx》由会员分享,可在线阅读,更多相关《音乐播放器课设报告要点.docx(24页珍藏版)》请在冰豆网上搜索。
音乐播放器课设报告要点
音乐播放器
音乐播放器
1问题定义和可行性研究................................................................2
(1)问题定义........................................................................................................................3
(1)可行性研究......................................................................................................................3
2需求分析........................................................................................3
1功能需求................................................................................................................................3
1.1功能描述.....................................................................................................................3
2性能需求................................................................................................................................4
3将来可能提出的要求............................................................................................................4
4项目描述.................................................................................................................................5
4.1编写目的......................................................................................................................5
4.2项目背景......................................................................................................................5
4.3开发工具及环境简介..................................................................................................6
3概要设计和详细设计....................................................................6
3.1概要设计..............................................................................................................................6
3.2详细设计.............................................................................................................................7
3.3音乐编码设计......................................................................................................................8
5主界面界面介绍.............................................................................9
6系统的实现..................................................................................11
一、主要的对话框..................................................................................................................11
二、全局变量..........................................................................................................................12
三、初始化函数......................................................................................................................12
三、播放、暂停功能..............................................................................................................15
四、添加文件到播放列表......................................................................................................18
五、下一首\上一首................................................................................................................20
六、停止播放..........................................................................................................................21
七、播放模式..........................................................................................................................21
八、显示时间和播放进度......................................................................................................22
九、删除歌曲..........................................................................................................................23
5.2单元测试...........................................................................................................................25
6.总结...............................................................................................26
1问题定义和可行性研究
本章分为两部分,问题定义和可行性研究。
问题定义阶段主要研究我们所学的知识能做什么项目,而可行性研究给出了制作音乐播放器的可行性。
(1)问题定义
通过开发音乐播放器,来练习本学期软件工程课程所学知识。
熟
悉软件开发的各个阶段,将书本上的知识与实践性的开发活动联系起来。
实现音乐播放器基本的功能。
(2)可行性研究
大一的时候已经学过了基本的C++编程的知识,在这个基础上,
有三个星期的时间来学习MFC编程,学习文件的读写操作,以及系
统API函数调用等知识。
边学边用,具备开发软件的能力。
2需求分析
本章给出了音乐播放器应该具备的功能,并给出了功能示意图,最后提出了实现该播放器应该具备的条件。
1功能需求
1.1功能描述
本播放器主要有如下功能:
1.对文件进行操作。
2.对按钮的处理1.对文件的操作
通过文件的读写知识,实现浏览目录以选择文件,添加歌曲到
播放列表,删除播放列表中的歌曲,对已经选中的文件进行播放、暂停,以及通过双击播放列表中的歌曲来播放文件。
2.对控件的处理
对各种按钮添加了事件响应函数,可以处理基本的播放,暂停,上一首/下一首,删除,选择播放模式等操作。
功能如下图:
2性能需求
本项目是一个普通的音乐播放器,运行环境为VS2010,项目运行速率正常,可以满足用户需求。
1.时间性能要求:
越低越好。
2.便捷性:
运用了可视化编程,更有助于人机交互,更人性化。
程序的运行,符合正常的操作习惯,程序功能明了简洁!
3将来可能提出的要求
(1)歌曲列表的保存
(2)菜单操作
(3)更换背景图片
(4)提供网络下载功能:
支持通过歌名和歌手名进行歌曲检索和下载功能;
(5)支持歌词显示和同步播放;
(6)支持歌曲在线播放;
(7)支持更友好的歌曲检索和下载功能;
(8)提供更良好的操作界面。
4项目描述
4.1编写目的
设计一个基于windows平台的音乐点播系统,实现音乐库的管理以及播放功能。
音乐播放器能够满足音乐的播放功能,实现一款播放器的基本功能。
4.2项目背景
本项目作为《软件课程设计》课程的训练项目提出,在基本的
设计实现基础上,将不断对已有的设计进行进一步的修改和完善,
最终完成整个软件开发过程。
本次项目的旨在通过不同软件工程设
计方法与技术的实践,了解和掌握各种技术、工具平台的特点与局限性,体会协同开发方式。
第1阶段:
主要目的是通过对项目需求的分析和理解,通过面向对象的设计方式完成项目前期的准备工作。
第2阶段:
我们会根据既定需求,完善设计模式。
第3阶段:
在设计文档和需求分析的文档下,完成音乐点播系统原型的开发,并完成整个开发流程的测试报告
第4阶段:
通过音乐点播系统软件的设计开发,了解软件文档的编
写原则,训练掌握软件各类文档写作的技巧,同时在文档的编写过程中提高和增加C++开发的能力和经验。
4.3开发工具及环境简介
操作系统:
windowsxp或以上版本
C++6.0:
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
MicrosoftOfficeWord2003:
经典办公软件,本项目中用于编写文档。
3概要设计和详细设计
3.1概要设计
通过这个阶段的工作将划分出组成系统的物理元素——程序,
文件和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子
里的具体内容将在以后仔细设计。
总体设计的另一项重要任务是设
计软件的结构,也就是要确定该软件由哪些模块组成的,以及这些模块之间的关系。
运用传统软件工程方法学的知识将音乐播放器软件的开发分成:
一、MFC的使用以及实现方法
二、文件的读写操作
三、系统API函数的调用
3.2详细设计
根据概要设计所划分的四个模块,该阶段应详细地完成这四个模块的任务:
一、MFC的实现
通过MFC窗口以及函数的使用,创建出播放器的主界面,主界
面应包括文件的打开、添加、播放以及线程按键。
另外,还要各种函数应该实现相应组件上的各种事件。
二、文件读写操作的实现
通过以前的学过的文件读写操作知识,实现对音乐文件的读以及写操作。
三、系统API函数的调用
通过调用系统媒体控制接口函数实现对mp3,wav,wma等格式的音乐的播放的功能。
3.3音乐编码设计
一、编码原理
1.音乐的十二平均率规定
(1)每两个八度音之间的频率相差一倍。
(2)两个八度音之间又可以分为十二个伴音,每两个伴音的频率比为1.059463。
(3)低音6(音名A)的频率是440Hz,音名B到C之间、E到F之间为伴音,其余为全音。
2.乐谱编码
选取65536Hz为基准频率,以此频率分频得到简谱高音各音调的分频比。
计算公式为N=65536/f。
二、编码参照
为了让ROM能够识别各音频的分频系数,需将个音频分频系数按照一定格式转换成十六进制格式。
我们采用8位的
ROM,D6D5位表示高中低音,如表1-2所示,11为高音,10为中
音,01为低音;用D4D3D2D1D0位表示分频系数,将表1-1的分
频系数转换成二进制格式表示;ROM的高位全部补0。
然后转换成
十六进制如表1-2所示。
之所以采用高音分频比的二分之一为基准
分频系数,是因为ROM的位宽限制,而每两个八度音频率相差一
倍,所以我们后面用译码器译成各音频的分频系数输出给分频器,这样由分频器输出到扬声器,扬声器就可发声了。
5主界面界面介绍1、界面图:
2添加歌曲按钮
3、删除歌曲按钮
4、音量的变大变小按钮
5、歌曲时间和进度的显示图像
6、下一首歌按钮
7、上一首歌按钮
8、停止播放按钮
9、播放按钮
10、单曲播放/随机播放/顺序播放按钮
11、空白部分为歌曲的菜单列表
6系统的实现
一、主要的对话框
classCMCIPlayerDlg:
publicCDialogEx
{
//构造
public:
CMCIPlayerDlg(CWnd*pParent=NULL);//标准构造函数
//对话框数据
enum{IDD=IDD_MCIPLAYER_DIALOG};
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//
DDX/DDV支持
//实现
protected:
HICONm_hIcon;
//生成的消息映射函数
virtualBOOLOnInitDialog();
afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);
afx_msgvoidOnPaint();
afx_msgHCURSOROnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
//列表
CListBoxm_list;
afx_msgvoidOnBnClickedOnstart();
afx_msgvoidOnBnClickedOnloadmusic();
voidload(musica);
intisplay;
intindex;
CSliderCtrlvolume;
afx_msgvoidOnNMCustomdrawVolun(NMHDR*pNMHDR,LRESULT*pResult);
afx_msgvoidOnBnClickedOnnext();
afx_msgvoidOnBnClickedOnper();
afx_msgvoidOnBnClickedOnstop();
LRESULTOnMciNotify(WPARAMwParam,LPARAMlParam);//设置播放模式
afx_msgvoidOnBnClickedOrder();
afx_msgvoidOnLbnDblClk();
voidOnTimer(UINTnIDEvent);
//进度条
CSliderCtrlm_progress;
afx_msgDWORDgetinfo(DWORDitem);
afx_msgvoidOnBnClickedDeletemusic();
};
二、全局变量
structmusic
{
stringname;
stringmPath;
};
intm_max;//进度条的最大位置变量
inthour,minute,second;//时间变量:
小时、分钟、秒钟
DWORDcdlen;//某个音频文件的总时间长度
DWORDm_count;//设备型号
DWORDcdfrom,cdto;//歌曲的起点和终点
DWORDDeviceID;
list
vector
三、初始化函数
BOOLCMCIPlayerDlg:
:
OnInitDialog()
{
CDialogEx:
:
OnInitDialog();
//将“关于...”菜单项添加到系统菜单中。
//volume.SetBkColor(RGB(37,38,37));
HBITMAPhBitmap;
hBitmap=LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP4));
((CButton*)GetDlgItem(IDC_ONSTART))->SetBitmap(hBitmap);
hBitmap=LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP1));
((CButton*)GetDlgItem(IDC_ONPER))->SetBitmap(hBitmap);
hBitmap=LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP2));
((CButton*)GetDlgItem(IDC_ONNEXT))->SetBitmap(hBitmap);
hBitmap=LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP5));
((CButton*)GetDlgItem(IDC_ONSTOP))->SetBitmap(hBitmap);
hBitmap=LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP7));
((CButton*)GetDlgItem(IDC_ORDER))->SetBitmap(hBitmap);
SetBackgroundImage(IDB_BITMAP6,BACKGR_TILE,NULL);
isplay=0;//未播放状态
index=-1;
m_list.SetCurSel(0);//设置初始选择位置volume.SetRange(0,1000);//滑块的移动范围0~1000volume.SetPos(500);//滑块指针的初始位置设为500代表初始音
量为50
ifstreamrin;//导入原先数据rin.open("Mylist.txt");
//intrere;
stringstr[2];
if(rin>>setw(50)>>str[0]>>setw(150)>>str[1])
while(!
rin.eof())
{
musicmu;
mu.name=str[0];
mu.mPath=str[1];
CStringname;
for(inti=0;i { if(mu.name[i]=='/') mu.name[i]=''; } name=mu.name.c_str(); CStringmPath; for(inti=0;i { if(mu.mPath[i]=='/') mu.mPath[i]=''; } mPath=mu.mPath.c_str(); intj=m_list.GetCount();// 把名字和地址插 入到list控件 m_list.InsertString(j,name); //CString*p=&mPath; allpath.push_back(mPath); rin>>str[0]>>str[1]; } rin.close(); //IDM_ABOUTBOX必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000); CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu! =NULL) { BOOLbNameValid; CStringstrAboutMenu; bNameValid=strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if(! strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX,strAboutMenu); } } //设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 //执行此操作 SetIcon(m_hIcon,TRUE);//设置大图标SetIcon(m_hIcon,FALSE);//设置小图标 //TODO: 在此添加额外的初始化代码 returnTRUE;//除非将焦点设置到控件,否则返回TRUE } 三、播放、暂停功能 voidCMCIPlayerDlg: : OnBnClickedOnstart(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 播放 器课设 报告 要点