基于MFC的音乐播放器.docx
- 文档编号:11628182
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:10
- 大小:178.21KB
基于MFC的音乐播放器.docx
《基于MFC的音乐播放器.docx》由会员分享,可在线阅读,更多相关《基于MFC的音乐播放器.docx(10页珍藏版)》请在冰豆网上搜索。
基于MFC的音乐播放器
VisualC++程序设计课程大作业
题目名称:
基于MFC的音乐播放器
系名称:
计算机科学与信息工程学院
专业班级:
09计科应用
2011年6月
一、成员分工
组长:
肖景元
组员:
周国庆徐思勇
组长肖景元:
负责整个工程设计的选材和功能的添加以及代码的设计。
周国庆:
负责对话框的设计、制作、控件的添加。
徐思勇:
负责工程的功能测试与修改。
二、需求分析
我们需要制作一个音乐播放器,具有一般播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还有具有播放、暂停、重复播放、音量调节、Repeat功能等功能。
需要解决的问题是向对话框中添加音乐播放的控件,以及各按键功能的实现。
三、总体设计
1、系统功能模块图(如图一):
图一:
系统功能模块图
2、流程图(如图二):
图二:
系统流程图
四、详细设计
OnOpen添加音乐
OnPlay开始播放
OnStop停止播放
OnPause暂停播放
OnUpper音量增加
OnLower音量降低
OnRepeat重复播放
OnFulscreeen全屏播放
OnClose窗口最小化
相应的添加变量:
CRoundButtonm_Open;
CRoundButtonm_Play;
CRoundButtonm_Stop;
CRoundButtonm_Close;
CRoundButtonm_Pause;
CRoundButtonm_Upper;
CRoundButtonm_Lower;
CRoundButtonm_Repeat;
CRoundButtonm_Exit;
CRoundButtonm_FullScreen;
详细步骤:
1、建立基于对话框(DialogBased)的运用程序。
2、在上面添加按钮,ID和Caption分别为
IDC_OPEN,Open;
IDC_PLAY,Play;
IDC_PAUSE,Pause;
IDC_STOP,Stop;
IDC_CLOSE,Close;
IDC_LOWER,<<=;
IDC_UPPER,=>>;
IDC_FULLSCREEN,Full;
IDC_REPEAT,Repeat;
3、再打开Projects->AddtoProject->ComponentsandControls->RegisteredActiveXControls对话框,选择其中的ActiveMovieControlObject,Insert,OK之后,你会发现你的控件面板上多了一项ActiveMovieControlObject,将它选中,直接放在你的对话框上就行了。
按Ctrl+W打开ClassWizard为它添加变量CActiveMovie3m_ActiveMovie。
4.为程序添加消息处理函数。
打开ClassWizard,为各个按钮加入消息处理函数。
在MediaPlayerDlg.cpp文件里为各消息处理函数添加代码。
(1)首先,在MediaPlayerDlg.h中添加如下:
public:
BOOLflag;
CMediaPlayerDlg(CWnd*pParent=NULL);//standardconstructor
(2)播放窗口最小化按钮:
最小化
voidCMediaPlayerDlg:
:
OnClose()
{
if(flag==false)
{
m_ActiveMovie.ShowWindow(SW_HIDE);//关闭窗口
flag=true;
}
else
{
m_ActiveMovie.ShowWindow(SW_SHOW);
flag=false;
}
}
(3)添加音乐按钮:
voidCMediaPlayerDlg:
:
OnOpen()
{
charszFileFilter[]=
"Mp3File(*.mp3)|*.mp3|"
"WmaFile(*.wma)|*.wma|"
"VideoFile(*.dat)|*.dat|"
"WaveFile(*.wav)|*.wav|"
"AVIFile(*.avi)|*.avi|"
"MovieFile(*.mov)|*.mov|"
"MediaFile(*.mmm)|*.mmm|"
"MidFile(*.mid;*,rmi)|*.mid;*.rmi|"
"MPEGFile(*.mpeg)|*.mpeg|"
"AllFile(*.*)|*.*||";//文件类型过滤
CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
if(dlg.DoModal()==IDOK){
CStringPathName=dlg.GetPathName();
PathName.MakeUpper();
m_ActiveMovie.SetFileName(PathName);
}
}
(4)播放音乐按钮:
voidCMediaPlayerDlg:
:
OnPlay()
{
m_ActiveMovie.Run();//播放文件
SetTimer(0,20,NULL);//设置定时器
}
(5)停止播放按钮:
voidCMediaPlayerDlg:
:
OnStop()
{
m_ActiveMovie.Stop();//停止播放文件
KillTimer(0);//关掉定时器
}
(6)暂停播放按钮:
voidCMediaPlayerDlg:
:
OnPause()
{
if(flag==false)
{
m_ActiveMovie.Pause();
flag=true;
SetDlgItemText(IDC_PAUSE,"播放");
}
else
{
OnPlay();
flag=false;
SetDlgItemText(IDC_PAUSE,"暂停");
}
}
(7)音量增加按钮:
voidCMediaPlayerDlg:
:
OnUpper()
{
longVolume=m_ActiveMovie.GetVolume();
m_ActiveMovie.Pause();
m_ActiveMovie.SetVolume(Volume+100);
m_ActiveMovie.Run();
}
(8)音量降低按钮:
voidCMediaPlayerDlg:
:
OnLower()
{
longVolume=m_ActiveMovie.GetVolume();
m_ActiveMovie.Pause();
m_ActiveMovie.SetVolume(Volume-100);
m_ActiveMovie.Run();
}
(9)重复播放按钮:
voidCMediaPlayerDlg:
:
OnRepeat()
{
if(!
isRepeat){
isRepeat=TRUE;
SetDlgItemText(IDC_STATIC2,"Status:
Repeat");
}
else{
isRepeat=FALSE;
SetDlgItemText(IDC_STATIC2,"Status:
Normal");
}
}
(10)全屏按钮:
voidCMediaPlayerDlg:
:
OnFulscreeen()
{
m_ActiveMovie.Pause();
m_ActiveMovie.SetFullScreenMode(true);
m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);
m_ActiveMovie.Run();
}
5.为使播放器具有Repeat功能,需在头文件MediaPlayerDlg.h加入控制变量BOOLisRepeat;类型可为Private。
同时修改OnInitDialog()函数:
BOOLCMediaPlayerDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
isRepeat=FALSE;
……
}
五、系统测试
1、打开初始程序(如图三):
图三;程序初始界面
2、点击“打开”,添加播放资源(如图四)。
图四;音乐库
3、单击“播放”,开始播放。
点击“暂停”,暂停播放。
再次点击“暂停”按钮,继续播放(如图五)。
图五;播放
4、单击“终止”,音乐播放停止,之后单击“播放”,重头开始播放。
5、单击“最小化”。
播放器消失,再次点击出现。
(如图六)
图六;隐藏进度条
六、总结
本次实验设计在本组成员团结合作下,终于完成了。
仔细回想起实验设计,发现在软件设计的功能上,我们做的虽没有特别新的功能,但做出的功能都比较实用,做出了一个音乐播放器所必备的元素,在这一点上还是比较成功的。
我们设计的播放器小巧,比较节省空间。
当然,这个播放器也有许多的不足之处,如播放器的功能太少,太过于简单,播放器的画面太单调,很空洞,当然,这些地方都需要改进,虽然本次试验设计做的不是很完美,但我们从中获得了很多经验,起码下次再做类似的的设计时更能节省时间且能做的更好更快。
从本次实验设计中,我们学到了很多东西,如在计算机编程设计中,团队合作是十分重要的:
要经常的编写一些程序,这样编写程序时才能很灵活。
七、参考文献
郑阿奇丁有和编著visualC++教程(第2版).机械工业出版社.2008年8月.
候俊杰编著深入浅出MFC(第二版).华中科技大学出版社.2001年1月.
David J.Kruglinski VisualC++技术内幕(第四版).清华大学出版社. 1999年1月.
孙鑫余安萍编著vc++深入详解.电子工业出版社.2006年6月.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MFC 音乐 播放