实验1多媒体播放器的设计.docx
- 文档编号:28451357
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:12
- 大小:202.66KB
实验1多媒体播放器的设计.docx
《实验1多媒体播放器的设计.docx》由会员分享,可在线阅读,更多相关《实验1多媒体播放器的设计.docx(12页珍藏版)》请在冰豆网上搜索。
实验1多媒体播放器的设计
实验1基于MFC的多媒体播放器的设计与实现
一、实验目的:
利用MFC在VC++或其它语言环境下设计一个多媒体播放器,进一步熟悉与掌握多媒体编程的基本技术与方法。
二、实验要求:
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
1、制作一个如下图的多媒体播放器界面,并尽量实现全部或绝大部分功能。
图1多媒体播放器功能要求
2、用.mp3、.avi等格式文件进行播放测试,并获取播放效果图。
3、完成ABOUTBOX的版权信息,请认真真实填写本人信息,否则当缺做实验或抄袭别人程序处理。
图2必须完成的版权个人信息
4、完成并测试程序后将源程序文件夹压缩后上传网络课堂,请确保程序的正确性与可执行性,老师通过执行你的程序从而给你计算本次实验成绩。
5、认真完成实验报告,必须包括实验目的,实验工具、设计框图、实验步骤、所完成的主要设计内容与方法、实验分析与总结等内容。
请尽量笔写,其中源代码与效果图可以打印后粘贴到实验报告本上。
实验指导与基本步骤:
使用VC++6.0的AppWizard、ClassWizard和其中的各种控件可以方便地建立各种应用程序。
但是想要实现更高级更复杂的功能,就要借助丰富的ActiveX控件资源。
本实验计划使用VC++6.0自带的一个ActiveX控件——ActiveMovieControlObject,来设计多媒体播放器。
此多媒体具有一般的播放功能,能播放:
*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还有Repeat功能。
1、注册控件:
在windows“运行”里写入:
regsvr32msdrm.ocx单击确定。
2、打开VC6.0,在Projects下选择MFCAppWizard(exe),并取名VedioPlayer,然后建立基于对话框的应用程序。
最后删除“确定”按钮,保留“取消”按钮。
图3
图4
图5
图6
图7MFCAppWizard生成的对话框
3、打开ResourceView,选择其中的对话框,打开其中的主对话框,去掉对话框上的“确定”按钮,保留“取消”,将Caption改为“退出”。
然后再在上面加上几个按钮,ID和Caption分别为
IDC_OPEN,打开;
IDC_PLAY,播放;
IDC_PAUSE,暂停;
IDC_STOP,停止;
IDC_CLOSE,关闭;
IDC_LOWER,-;
IDC_UPPER,+;
IDC_FULLSCREEN,全屏;
。
。
。
。
。
。
最终如图8所示。
图8播放器功能界面
4、加入ActiveMovieControl控件。
打开Projects->AddtoProject->ComponentsandControls->RegisteredActiveXControls对话框,选择其中的ActiveMovieControlObject,Insert,OK之后,会发现控件面板上多了一项ActiveMovieControlObject,将它选中,直接放在对话框上,并拖成合适大小。
最终效果如图11所示。
图9
图10
图11最终界面效果
5、为ActiveMovieControl控件设置变量m_ActiveMovie。
点中它,按Ctrl+W打开ClassWizard为它添加变量m_ActiveMovie。
图12为ActiveMovieControl控件设置变量m_ActiveMovie
6、为程序添加消息处理函数。
打开ClassWizard,为各个按钮加入消息处理函数。
在MediaPlayerDlg.cpp文件里为各消息处理函数添加代码,部分代码如下:
voidCVediorDlg:
:
OnClose()
{
m_ActiveMovie.CloseWindow();//关闭窗口
}
voidCVedioPlayerDlg:
:
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();//这个函数可以将CString字符转化为一个大写的字符串
m_ActiveMovie.SetFileName(PathName);
}
}
voidCVedioPlayerDlg:
:
OnPlay()
{
m_ActiveMovie.Run();//播放文件
SetTimer(0,20,NULL);//设置定时器
//0:
计时器的名称;20:
时间间隔,单位是毫秒;NULL:
使用OnTimer函数。
}
voidCVedioPlayerDlg:
:
OnStop()
{
m_ActiveMovie.Stop();//停止播放文件
KillTimer(0);//关掉定时器
}
voidCVedioPlayerDlg:
:
OnPause()
{
m_ActiveMovie.Pause();//暂停播放
}
voidCVedioPlayerDlg:
:
OnUpper()//增加音量
{
longVolume=m_ActiveMovie.GetVolume();
m_ActiveMovie.Pause();
m_ActiveMovie.SetVolume(Volume+100);
m_ActiveMovie.Run();
}
voidCVedioPlayerDlg:
:
OnLower()//减少音量
{
longVolume=m_ActiveMovie.GetVolume();
m_ActiveMovie.Pause();
m_ActiveMovie.SetVolume(Volume-100);
m_ActiveMovie.Run();
}
voidCVedioPlayerDlg:
:
OnFulscreeen()//全屏播放
{
m_ActiveMovie.Pause();
m_ActiveMovie.SetFullScreenMode(true);
m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);
m_ActiveMovie.Run();
}
这里需要注意的是,下面的函数OnTimer()需通过ClassWizard(Ctrl+W)来添加,不能直接复制:
图13
voidCVedioPlayerDlg:
:
OnTimer(UINTnIDEvent)
{
doubleCurrentPos=m_ActiveMovie.GetCurrentPosition();
if(CurrentPos==0&&isRepeat)//如果当前是文件的起始位置而且为重复播放状态
m_ActiveMovie.Run();
CDialog:
:
OnTimer(nIDEvent);
}
7、为使播放器具有重复播放功能,需在头文件VedioPlayerDlg.h加入控制变量BOOLisRepeat;类型可为Private。
同时修改OnInitDialog()函数:
BOOLCMediaPlayerDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
isRepeat=FALSE;
……
}
8、其他功能请自己设计解决。
仅供个人用于学习、研究;不得用于商业用途。
Forpersonaluseonlyinstudyandresearch;notforcommercialuse.
NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 多媒体 播放 设计