音乐播放器实验报告.doc

上传人:jian****018 文档编号:9666167 上传时间:2020-04-07 格式:DOC 页数:18 大小:76KB
返回 下载 相关 举报
音乐播放器实验报告.doc_第1页
第1页 / 共18页
音乐播放器实验报告.doc_第2页
第2页 / 共18页
音乐播放器实验报告.doc_第3页
第3页 / 共18页
点击查看更多>>
资源描述
面向对象程序设计课程设计 设计说明书音乐播放器(Mp3 Player)起止日期: 2012 年 5 月 27 日 至 2012 年 6 月 2 日学生姓名孙见任班级计算机科学与技术101学号10408100124成绩指导教师(签字)计算机与通信学院2012年 6 月 2 日目录一、课题的介绍和课题的任务二、设计的要求三、系统的分析和系统中功能的设计四、系统的实现及调试五、系统的使用说明六、总结七、程序主要源代码八、课程设计任务书一、 课题的介绍和课题的任务音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。它涵盖了各种音乐格式的播放工具,比如:MP3播放器,WMA播放器,MP4播放器等。它们不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。利用MFC应用程序、媒体控制接口MIC的基本知识,设计一个MP3播放器。要求能够播放常用Windows音频格式的文件;实现播放控制:播放、暂停、清空播放列表、音量增减、添加歌曲、上一曲,下一曲等功能;实现从本地磁盘加入文件,然后对其进行播放。二、设计的要求系统模块功能图:基于MFC的音乐播放器播放曲目关音量控制关音乐播放关播放器开关开启音量加停止暂停播放关闭下一曲上一曲音量减流程图:开始添加音乐播放停止暂停播放结束退出二、 系统的分析和系统中功能的设计主要成员函数:OnPaint()添加背景图片OnAdd()添加功能OnPlayOrPause()播放/暂停功能StoreList()、ReadList()播放列表功能OnClear()清空播放列表功能SetVolume()、Oninvolume()、Ondevolume()音量功能OnfrontSong()、OnNextSong()上下曲getlrc()、displaylrc()歌词显示功能该播放器分为八大功能模块;1、 背景图片:音乐播放器的背景图片。2、添加功能:该功能能够在本地磁盘中寻找音乐文件,并将文件加载到程序中,将文件进行播放。3、播放/暂停功能:本地磁盘音乐文件添加完毕,单击播放按钮开始播放音乐,直至播放完毕,单击按钮便可以暂停音乐的播放,再次单击按钮时继续播放。4、播放列表功能:显示添加的歌曲5、清空播放列表功能:清除播放列表中的全部歌曲。6、音量功能:控制音量的大小7、上下曲:改变播放歌曲的顺序。8、歌词显示功能:显示当前播放歌曲的歌词。四、系统的实现及调试/说明:主要介绍系统编码的实现以及编码中遇到的问题和解决方法。五、系统的使用说明该系统界面包括添加、播放/暂停、清空播放列表、播放列表、音量增减、上一曲、下一曲、歌词显示区等按钮。先单击文件按钮,在本地磁盘找打音乐文件,然后将文件加入,添加的歌曲显示在播放列表中。选中播放列表的歌曲,然后单击播放按扭,开始播放音乐,直到播放完后停止。在播放音乐文件期间,单击暂停按钮,可以暂停播放音乐,再次单击暂停按钮时,又可以继续播放。同时单击+,-按钮,可以控制音量的大小。单击上一曲按钮,将播放播放列表中当前曲目的上一曲,下一曲按钮,播放播放列表中当前曲目的下一曲。同时显示歌曲名和歌词。注意:添加完文件后,应先选中播放列表中的歌曲在点击播放按钮才能播放。六、总结经过一周的面向对象程序课程设计,我学到了很多。在这一周的实际动手学习中,我对VC+这门课程有了更深刻的认识,掌握了用MFC创建基于对话框的应用程序,同时了解了MCI相关知识。这次课程设计我做了MP3播放器的设计,MP3播放器主要对常用Windows音频格式的文件实现播放控制:播放歌曲、暂停播放、音量的控制、上一曲、下一曲等功能。 本次课程设计中虽然可以实现播放、暂停以及音量等功能,但仍然存在着放多不足,比显示播放时间的功能以及循环播放功能始终无法实现,如果有时间一定会好好研究。课设是辛苦劳累的,但是收获同样是巨大的,在课设中每解决一个问题,那种成就感是无法言语的,课设中第一次调试程序时出现了逻辑错误,编译能通过,运行始终无法通过,后来经过思考,进行了多次修改调试之后得到了运行结果。七、程序主要源代码:void CMp3PlayerDlg:OnAdd() /添加文件/ TODO: Add your control notification handler code herechar sBuffer6000; sBuffer0=0;CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,MP3文件(*mp3)|*mp3|,NULL);dlg.m_ofn.lpstrFile=sBuffer;dlg.m_ofn.nMaxFile=6000;if(dlg.DoModal()=IDOK)POSITION pos;pos=dlg.GetStartPosition();int n;CString cs;for(int i=CurSize;iiItem;CurID=pNMListView-iItem;CurPos=0;Playmusic(CurID);State=1;*pResult = 0;void CMp3PlayerDlg:Stopmusic()/暂停mciSendCommand(m_mciID,MCI_STOP,MCI_WAIT,NULL);void CMp3PlayerDlg:Pausemusic()mciSendCommand(m_mciID,MCI_PAUSE,0,NULL);void CMp3PlayerDlg:OnPlayOrPause()/播放,暂停/ TODO: Add your control notification handler code hereif(State=1)Pausemusic();KillTimer(1);State=0;elsemciSendCommand(m_mciID,MCI_RESUME,0,NULL);SetTimer(1,1000,NULL);State=1;void CMp3PlayerDlg:StoreList()/存储列表CFile file;if(file.Open(E:My musicsonghuang.hzy,CFile:modeWrite|CFile:modeCreate)CArchive ar(&file,CArchive:store);arCurSize;for(int i=0;iCurSize;+i)armp3i.mp3NameCurSize;for(int i=0;imp3i.mp3Name;armp3i.pathName;ar.Close();file.Close();void CMp3PlayerDlg:display()m_MusicList.DeleteAllItems();for(int i=0;iCurSize;+i)m_MusicList.InsertItem(i,mp3i.mp3Name);displayname();void CMp3PlayerDlg:displayname()/播放的文件名m_CurName=mp3CurID.mp3Name;UpdateData(false);void CMp3PlayerDlg:displaylrc()/播放歌词UpdateData(false);SetTimer(2,8000,NULL);void CMp3PlayerDlg:OnClear() /清空列表/ TODO: Add your control notification handler code herem_MusicList.DeleteAllItems();CurSize=0;display();void CMp3PlayerDlg:Getlengh()/获得歌曲的长度/ get lenghMCI_STATUS_PARMS StatusParms;StatusParms.dwItem = MCI_FORMAT_MILLISECONDS|MCI_STATUS_LENGTH;mciSendCommand (m_mciID, MCI_STATUS, MCI_WAIT | MCI_STATUS_ITEM,(DWORD)&StatusParms);lengh=StatusParms.dwReturn;m_progress.SetRange(0,lengh/1000);SetTimer(1,1000,NULL);void CMp3PlayerDlg:OnTimer(UINT nIDEvent)/定时器/ TODO: Add your message handler code here and/or call defaultif(nIDEvent=1)if(CurPos=lengh/1000)KillTimer(1);srand(time(0);CurID=rand()%CurSize;CurPos=0;Playmusic(CurID);m_progress.SetPos(+CurPos);elseif(nIDEvent=2)m_lrc=;for(int i=CurLine;iGetPos();Playmusic(CurID);CDialog:OnHScroll(nSBCode, nPos, pScrollBar);void CMp3PlayerDlg:SetVolume()/音量/ TODO: Add your control notification handler code hereMCI_DGV_SETAUDIO_PARMS mciVolume;mciVolume.dwItem = MCI_DGV_SETAUDIO_VOLUME;mciVolume.dwValue = CurVolume; /此处就是音量大小 (0-1000)mciSendCommand(m_mciID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE|MCI_DGV_SETAUDIO_ITEM,(DWORD)&mciVolume);void CMp3PlayerDlg:Oninvolume() /增加音量/ TODO: Add your control notification handler code hereCurVolume+=10;SetVolume();void CMp3PlayerDlg:Ondevolume() /减小音量/ TODO: Add your control notification handler code hereCurVolume-=10;if(CurVolume=0)CurVolume=0;SetVolume();void CMp3PlayerDlg:OnfrontSong() /上一曲/ TODO: Add your control notification handler code hereCurID-=1;if(CurID=CurSize-1)CurID=CurSize-1;CurPos=0;Playmusic(CurID);bool CMp3PlayerDlg:getlrc()/获得歌词CFile file;CStdioFile file1;CString str;str=mp3CurID.pathName;str.Replace(mp3,lrc);int n=0;int i=0;int temp;if(file1.Open(str,CFile:modeRead)while(file1.ReadString(str)n=str.Find(,0);temp=n;while(str.Find(,temp+1)!=-1)temp=str.Find(,temp+1);if(temp!=-1)n=temp;str.Delete(0,n+1);if(str!=)lrci=str+rn;m_lrc+=lrci;i+;TotleLine=i;return 1;return 0;湖南工业大学课程设计任务书20112012 学年第 二 学期 计算机与通信学院 学院(系、部) 计算机科学与技术 专业 101 班级课程名称: C+面向对象程序设计 设计题目: 音乐播放器(Mp3 Player) 完成期限:自 2012 年 5 月 27 日至 2012 年 6 月 2 日共 1 周内容及任务一、 设计的主要技术参数MFC对话框的建立、初始化图片按钮!二、 设计任务做一个基于对话框的MFC音乐播放器三、设计工作量进度安排起止日期工作内容2012-5-27-2012-5-28游戏界面的设计2012-5-29-2012-5-30游戏功能设计2012-5-30-2012-5-31测试与修改2012-5-31-2012-6-1写课程设计报告主要参考资料1)C+面向对象程序设计谭浩强清华大学出版社2)深入浅出MFC第2版候俊杰华中科技大学出版社3)Visual C+从入门到实践葛亮清华大学出版社4)王华,叶爱亮,祁立学等.Visual C+6.0编程实例与技巧M.北京:机械工业出版社,1999.指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!