




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——vc音频播放器(含源文件)
课程设计说明书
题目:音频播放器
成绩:
1
时间:年月日至年月日
课程设计任务书
题目音频播放器
主要内容:
音频播放器,是目前用户选择播放任意格式的音频文件的软件,如酷狗、音乐
等。一般的音频播放器,都可以支持MP3、wave、AU、VOC等文件格式的播放。
在此次设计的音频播放其中,可以实现对音频文件的开启、播放、暂停、中止、上一曲/下一曲、歌词显示等操作。对于播放器的界面,可以最小化,并显示到托盘。处于最小化的状态下,仍旧可以对正在播放的文件进行上述操作。在此播放器中,最具特点的是在各个操作按钮以及整个界面上添加了位图和能将窗口最小化。播放器窗口的建立,也有区别与传统的有菜单显示的窗口。最小化到托盘后,仍可以进行操作,也可以选择退出。对于实现播放、中止、上一曲/下一曲、添加文件,都是利用CMidi这个类来存放实现这些功能的函数。需要的时候调用就可以。为了是界面更美观,让人看起来更安逸,参与了位图背景。目前还没有实现用户根据自己的喜好来更改背景图案。
主要参考资料:
[1]姬涛、周启生,《计算机程序设计基础(上册)》[Z],北京:中国传媒大学出版社,2023
[2]谭浩强,《C程序设计教程》[Z],北京:清华大学出版社,2023[3]任哲,《MFCWindows应用程序设计(其次版)》[Z],北京:清华大学出版社,2023
完成期限:指导教师签名:课程负责人签名:
年月日
摘要
音频播放器,是目前用户选择播放任意格式的音频文件的软件,如酷狗、音
2
乐等。一般的音频播放器,都可以支持MP3、wave、AU、VOC等文件格式的播放。
在此次设计的音频播放其中,可以实现对音频文件的开启、播放、暂停、中止、上一曲/下一曲、歌词显示等操作。对于播放器的界面,可以最小化,并显示到托盘。处于最小化的状态下,仍旧可以对正在播放的文件进行上述操作。在此播放器中,最具特点的是在各个操作按钮以及整个界面上添加了位图和能将窗口最小化。播放器窗口的建立,也有区别与传统的有菜单显示的窗口。最小化到托盘后,仍可以进行操作,也可以选择退出。对于实现播放、中止、上一曲/下一曲、添加文件,都是利用CMidi这个类来存放实现这些功能的函数。需要的时候调用就可以。为了是界面更美观,让人看起来更安逸,参与了位图背景。目前还没有实现用户根据自己的喜好来更改背景图案。
通过这次课程设计,更加稳定了我们所学的知识。
目录
3
摘要II第一章课题背景和概述1
1.1课题背景1
1.1.1音频播放器简介11.1.2目的和意义11.2课题概述1
1.2.1功能简介11.2.2主要工作和理论依据1
其次章设计简介及设计方案论述3
2.1需求分析32.2系统功能及结构简介3
2.2.1系统功能32.2.2系统结构3
第三章详细设计4
3.1界面设计4
3.1.1播放器界面设计43.1.2按钮上的位图显示53.2各模块功能设计6
3.2.1各按钮功能的实现63.2.2最小化到托盘73.2.3进度条显示7
第四章设计结果及分析8
4.1运行结果显示84.1.1开启文件并播放84.1.2最小化84.1.3歌词显示94.2结果分析和不足9
总结10致谢11
其次章
2.1需求分析
设计简介及设计方案论述
随着社会的发展,有越来越多的人接触电脑,也有越来越多的人喜欢在上网、工作的时候,播放一点音乐,消遣一下,缓解一下。所以,应运而生的是音频播放
6
器软件,能够为用户播放常见的格式音频文件。并且,在使用的过程中,也尽可能设计出一些人性化的设计。譬如,能最小化到托盘并可以进行操作。良好的人机交互界面,也能给人以美好的感官享受。
2.2系统功能及结构简介
2.2.1系统功能
此音频播放器可以播放多格式的音频文件。在播放的时候,需要开启本地的音乐文件,选择想要开启的文件,点击播放便可以播放。
在播放的过程中,假使有事离开想要中止播放,可以点击暂停按钮,等到需要的时候,依旧可以点击播放,继续播放。假使需要退出,点击关闭按钮即可。假使是出于最小化到托盘的状态,点击右键选择退出即可。假使想换首歌,点击下一首或者上一首的按钮便可以了。
对于想详细了解歌曲歌词内容,点击界面上的“歌词按钮〞,便可以显示歌词。为了能够让在进行其它操作的用户不受打搅,可以将此播放器最小化到托盘。与此同时,用户仍旧能够通过点击鼠标右键进行相关的操作。
2.2.2系统结构
此播放器编写的时候,利用的是MFC单文档程序的构成框架,然后再利用Windows提供的资源,运用控件,自己制作了对话框和人机交互界面。在制作界面的同时,也制作了各个按钮,并完成各个按钮的消息响应,便完成响应函数实现了功能。
第三章
3.1界面设计
3.1.1播放器界面设计
7
详细设计
此播放器的界面是利用控件和位图的结合制作出来了。
开启VCC++6.0新建一个工程,选择单文档。便生成了一个窗口。然后开启ResouceView,点开Dialog,插入Dialog,利用控件,绘制各个按钮。为了使各个按钮更加美观,使用位图,用自己收集的图片将各个按钮覆盖,最终添加消息响应函数,实现各个功能。
为了使所引入的位图能够和所绘制的窗口能完全吻合,在OnPaint()函数中,调用StretchBlt()函数,让其从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。
图3-1按钮控制
最终生成的界面比较美观,给人的感觉良好
图3.2播放器界面
3.1.2按钮上的位图显示
为对话框添加9个按钮(Button),在Styles标签中选中Bitmap属性。将它们的ID分别为
IDC_Play,IDC_Stop_BUTTON,IDC_Next_BUTTON,IDC_Pre_BUTTON,IDC_Add_Song,IDC_Delet_Song,IDC_GC_BUTTON,IDC_MinWindow,ID_CloseWindow以实现对文件的各项操作。将5幅准备好的位图参与资源,其ID分别设为
IDC_Play,IDC_Stop_BUTTON,IDC_Next_BUTTON,IDC_Pre_BUTTON,IDC_Add_Song
8
,IDC_Delet_Song,IDC_GC_BUTTON,IDC_MinWindow,ID_CloseWindow,分别和5个按钮相对应。然后,在ClassWizard里为每个按钮分别添加一个CBitmapButton型的变量,分别命名为
m_BitmapBtn_Delete;m_BitmapBtn_Stop;m_BitmapBtn_MinWindow;m_BitmapBtn_MaxWindow;m_BitmapBtn_CloseWindow;m_BitmapBtn_NextSong;m_BitmapBtn_UpSong;m_BitmapBtn_paly;m_BitmapBtn_Add;m_BitmapBtn_GC;以对按钮进行操作。
3.2各模块功能设计
3.2.1各按钮功能的实现
(1)处理“开启〞按钮
单击“开启〞按钮后,在OnAddSong()函数中,首先对文件类型进行过滤,调用OpenFiles()函数开启对话框选择一个音频文件,通过InitPath()函数获取文件路径,通过InitPath()函数获取文件名后,调用SaveList()函数在StaticText控件上显示你所选择的歌曲文件名,然后再单击播放按钮,便可以播放歌曲。
(2)处理“播放〞按钮
单击“播放〞按钮后,在OnPlay()函数中,通过调用Midi类中的Open()函数
9
获取方才选择的文件路径以及文件名,调用该类的Midi类中的Play()函数播放歌曲,此时调用DisplayInfo()函数在StaticText控件上显示正在播放的歌曲,进行歌曲的播放,然后利用GetDlgItem()函数设置“播放〞按钮不可用。
(3)处理“中止〞按钮单击“中止〞按钮后,在OnStopBUTTON()函数中,首先通过调用Midi类的Stop()函数中止正在播放的歌曲,此时的歌曲处于暂停时的进度上,利用GetDlgItem()函数设置“播放〞按钮可用。
(5)处理“上一曲/下一曲〞按钮单击“上一曲〞按钮时,在OnNextBUTTON()函数中,通过调用Midi类中的Next()函数,中止当前播放放的歌曲,并播放当前列表中的下一曲。“下一曲〞按钮的处理与“上一曲〞类似。
(6)处理“最小化〞按钮
单击“最小化〞按钮时,在OnMinWindow()函数中,通过调用ToTray()函数,将当前显示的窗口最小化,并显示在任务栏,在此状况下,仍就可以进行上述操作。
(7)处理“歌词〞按钮
单击“歌词〞按钮时,会在原有的窗口之外再弹出一个窗口,以此来显示歌词。这需要在这整个工程中新建一个GECI类,来绘制显示歌词的窗口。整个绘制的过程,与界面的设计是相类似的。
(8)处理“关闭〞按钮
单击“关闭〞按钮后,在OnCloseWindow()函数中,调用CDialog类的OnOK()函数将退出对话框,终止程序的运行。
3.2.2最小化到托盘
单击“最小化〞按钮时,在OnMinWindow()函数中,通过调用ToTray()函数,率先窗口会被最小化至托盘。在这个过程中,ToTray()函数只能实现最小化,并不能实现在最小化的状况下进行操作。
在最小化至托盘后,要进行操作,就定义了一个OnShowTask(WPARAM
wParam,LPARAMlParam)的函数,利用if、switch语句进行判断。首先要通过鼠标的行为来获取最小化之后图标的ID。得到响应后,单击右键,显示弹出式menu。menu.AppendMenu(MF_STRING,IDC_Next_BUTTON,\下一曲\menu.AppendMenu(MF_STRING,IDC_Pre_BUTTON,\上一曲\menu.AppendMenu(MF_STRING,IDC_Stop_BUTTON,\停止\menu.AppendMenu(MF_STRING,IDC_Play,\播放|暂停\menu.AppendMenu(MF_STRING,WM_DESTROY,\退出\
由此来确定弹出式菜单的位置。点击后,鼠标得到响应,并执行操作。假使
10
想恢复到原来的窗口,双击最小化后任务栏内的图标显示,鼠标由
WM_LBUTTONDBLCLK实现双击响应后,便会回到原来的窗口。在此同时,通过调用DeleteTray()函数,来删除任务栏里最小化后的图标。
3.2.3进度条显示
进度条在前进的过程中,其总长度应当为歌曲长度。假使想要在一首歌播放完毕后,进度条加好走完,必需先利用GetMediaLength(nLength,bProgress)函数获取歌曲长度,然后利用UpdatePlayTime(BOOLbProgress)函数不断更新歌曲播放的时间,最终通过OnTimer()来实现。
第四章
设计结果及分析
4.1运行结果显示
4.1.1开启文件并播放
点击“添加〞按钮,选择想要播放的歌曲,所选择的文件会显示在“播放列表〞
11
中。想要播放哪一首,点击播放即可。
图4-1开启文件并播放
在播放的过程中,依旧存在一些问题。譬如,不能通过双击歌曲来达到播放的目的。假使想完成“上一曲/下一曲〞的操作,在添加歌曲文件的时候,必需是一次性的添加多首歌曲。假使每次只添加一首,添加屡屡,便不能完成歌曲之间的更换。
4.1.2最小化
当需要最小化是,点击最小化按钮,窗口将自动最小化到托盘。
最小化时,单击右键会出现如下图的菜单。单击菜单中的选项,也可以完成操作。
4.1.3歌词显示
点击“歌词〞按钮时,会弹出另一个窗口来显示歌词。由于没有导入歌词文本,所以歌词内容无法显示。
12
4.2结果分析和不足
虽然说这次的设计结果,从表面上看来,基本功能是实现了。但依旧还是存在好多不足。最突出的就是进度条的问题。
进度条在前进的过程中,其总长度应当为歌曲长度。假使想要在一首歌播放完毕后,进度条加好走完,必需先利用GetMediaLength(nLength,bProgress)函数获取歌曲长度,然后利用UpdatePlayTime(BOOLbProgress)函数不断更新歌曲播放的时间,最终通过OnTimer()来实现。
但是在设计的过程中,编译和连接都没有错误,却不能运行处预料的结果,还有明显的错误。在网上查阅资料的过程中,也没有找到解决的方法。
13
总结
这一次的课程设计,对我个人来说是相当有难度的。在设计的过程中,有好多问题不是很明白,所以走起来就很困难。有时候在遇到问题的时候,基本知识都了解,但是不知道怎么把他们整合起来,知识没有形成系统,都是很零散的东西。而且,由于以前的基础知识不够稳固,是的我在这次课程设计中感到更加的困难。
在设计的过程中,每走一步就会发现,思路想出来很简单,但涉及到实现的时候,总是有点手足无措。对于我的这次课程设计,里面还有好多要改进的地方。在播放器的界面上虽然有音量的调理,但是没有有真正的实现;歌词的具体内容额没有关联上来。
当然一个程序的顺利出炉,少不了的就是反复的调试和更改。在调试的过程中,总会发现好多错误,在解决这些错误的同时,开始很模糊的概念,就会越来越明了。其实有好多错误都是很类似的,只要解决了一个,其他的也就迎刃而解了。
其实,这一个程序的完成,并不是我一个人的功劳。有好多不懂的地方就会向别人请教,同学之间的相互帮助,确实能够解决好多问题。
14
致谢
特别感谢MFCWindows应用程序设计老师的悉心指教和帮助,特别是在上课时候的细心讲解和试验过程中详细的演示,让我更加明白的了解了各个知识点的运用。
通过这一次的课程设计,让我学到了更多的知识,也把以前把握不熟练的知识,能更加灵活地运用了。
感谢!
15
menu.AppendMenu(MF_STRING,IDC_Play,\播放|暂停\menu.AppendMenu(MF_STRING,WM_DESTROY,\退出\确定弹出式菜单的位置
menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this);//资源回收
HMENUhmenu=menu.Detach();menu.DestroyMenu();deletelpoint;}break;caseWM_LBUTTONDBLCLK://双击左键的处理{this->ShowWindow(SW_SHOW);//显示主窗口
DeleteTray();
}break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023八年级英语上册 Module 2 My home town and my country Unit 2 Cambridge is a beautiful city in the east of England教学设计(新版)外研版
- 5 国家机构有哪些 课时2《国家机关的职权》 教学设计-2024-2025学年道德与法治六年级上册统编版
- 2024-2025学年高中物理 第2章 1 欧姆定律教学设计 教科版选修3-1
- 2023六年级语文上册 第八单元 语文园地教学设计新人教版
- Unit 3 My School Reading Plusl拓展阅读(教学设计)-2024-2025学年人教版(2024)七年级英语上册
- 《第一单元 红灯停 绿灯行 唱歌 小蚂蚁》(教学设计)-2023-2024学年人教版音乐一年级下册
- 16 大家一起来合作(教学设计)2023-2024学年统编版道德与法治 一年级下册
- 肠炎患儿护理查房
- 2015人教版九年级历史与社会下册:第五单元第三课第一框《苏联的改革与发展》教学设计(浙江椒江区洪家第二中学)
- 2025毕业答辩模板:创意与学术并存
- 2025年浙江省杭州市拱墅区中考语文模拟试卷含答案
- 原发性高血压护理措施
- 路面工程安全专项施工方案
- 人工智能基础(Python实现)-课件 第8章 生成式大模型应用
- 2024年安徽宁马投资有限责任公司招聘10人笔试参考题库附带答案详解
- 做新时代的忠诚爱国者课件
- 纪检监察审查调查业务培训
- 《变频器原理及应用》课件
- 2024年中考模拟试卷英语(苏州卷)
- 摄像服务行业品牌建设研究-深度研究
- 游戏人物立绘课程设计
评论
0/150
提交评论