实验简单音频播放器程序实现.docx
- 文档编号:850188
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:19
- 大小:45.11KB
实验简单音频播放器程序实现.docx
《实验简单音频播放器程序实现.docx》由会员分享,可在线阅读,更多相关《实验简单音频播放器程序实现.docx(19页珍藏版)》请在冰豆网上搜索。
实验简单音频播放器程序实现
实验2简单音频播放器程序实现
1.上机实验报告二
课程名称:
多媒体技术
班级:
数媒**班
实验日期:
2014.3.31-4.11
小组成员:
指导教师:
02
实验序号:
实验成绩:
一、简单音频播放器程序实现
二、实验目的及要求
1、掌握使用DirectSound实现音频播放程序的方法;
2、掌握创建缓冲区的方法;
3、学会播放音频数据的方法;
3、了解RIFF文件格式,学会读取WAV文件的方法;
4、开发一个简单的基于MFC框架的音频播放器。
三、实验环境
本次上机实践所使用的平台和相关软件VS2012MFC\win7
四、实验内容
用MFC设计具有一般能播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还有具有播放、暂停、停止、音量调节等功能。
1、点击“打开”,添加播放资源
2、单击“播放”,开始播放
3、点击“暂停”,暂停播放;之后点击“恢复”,播放器继续播放
4、单击“终止”,音乐播放停止
、滑动音量滑块调节音量大小5
1/13
五、调试过程及实验结果本次作业参考了优酷上的指导视频,然后仿照编写的。
在完成此次大作业的过程中遇到了很多问题,首先音量控制就是一个难
点,最初完成的版本可以运行但音量无法控制,后来添加了一个函数解决问题:
pNMHDR,CMUSIC_PLAYER_100511217Dlg:
:
OnCustomdrawSlider(NMHDR*void
LRESULT*pResult)
{
UpdateData(true)。
。
m_vol=m_slider.GetPos()/10。
SetVolumn(m_slider.GetPos())
UpdateData(false)。
。
*pResult=0}
最终成果:
2/13
六、总结编程的基本方法,使自己MFC过完成这个简易的音乐播放器,掌握到了实现音频播放程序DirectSound的编程能力得到进一步的提高,学会使用的方法。
3/13
七、附录player.cpp
//player.cpp:
Definestheclassbehaviorsfortheapplication.
//
#includestdafx.h
#includeplayer.h
#includeplayerDlg.h
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
。
staticcharTHIS_FILE[]=__FILE__#endif
/////////////////////////////////////////////////////////////////////////////
//CMyApp
BEGIN_MESSAGE_MAP(CMyApp,CWinApp)
//{{AFX_MSG_MAP(CMyApp)
//NOTE-theClassWizardwilladdandremovemappingmacroshere.
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
//}}AFX_MSG
ON_COMMAND(ID_HELP,CWinApp:
:
OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CMyAppconstruction
CMyApp:
:
CMyApp()
{
//TODO:
addconstructioncodehere,
//PlaceallsignificantinitializationinInitInstance
}
/////////////////////////////////////////////////////////////////////////////
//TheoneandonlyCMyAppobject
。
CMyApptheApp
/////////////////////////////////////////////////////////////////////////////
//CMyAppinitialization
BOOLCMyApp:
:
InitInstance()
{
AfxEnableControlContainer()。
//Standardinitialization
//Ifyouarenotusingthesefeaturesandwishtoreducethesize
//ofyourfinalexecutable,youshouldremovefromthefollowing
//thespecificinitializationroutinesyoudonotneed.
#ifdef_AFXDLL
//CallthiswhenusingMFCinasharedDLL。
Enable3dControls()
#else
//CallthiswhenlinkingtoMFCstatically
。
Enable3dControlsStatic()
4/13
#endif
。
CMyDlgdlg
。
m_pMainWnd=&dlg
。
intnResponse=dlg.DoModal()
if(nResponse==IDOK)
{
//TODO:
Placecodeheretohandlewhenthedialogis
//dismissedwithOK
}
elseif(nResponse==IDCANCEL)
{
//TODO:
Placecodeheretohandlewhenthedialogis
//dismissedwithCancel
}
//Sincethedialoghasbeenclosed,returnFALSEsothatweexitthe
//application,ratherthanstarttheapplication'smessagepump.
returnFALSE。
}
playerDlg.cpp
//playerDlg.cpp:
implementationfile
//
#includestdafx.h
#includeplayer.h
#includeplayerDlg.h
#includeMmsystem.h
#includeDigitalv.h
#pragmacomment(lib,Winmm.lib)
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
。
staticcharTHIS_FILE[]=__FILE__#endif
。
HWNDm_hWnd。
MCI_OPEN_PARMSmciopenparmsDWORDItemLength,ItemTo。
DWORDitem。
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
。
CAboutDlg()
//DialogData
//{{AFX_DATA(CAboutDlg)
。
enum{IDD=IDD_ABOUTBOX}//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
5/13
protected:
//DDX/DDVsupportvirtualvoidDoDataExchange(CDataExchange*pDX)。
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
。
}
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
。
CDialog:
:
DoDataExchange(pDX)//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CMyDlgdialog
CMyDlg:
:
CMyDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CMyDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CMyDlg)
。
m_int=0//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
。
m_hIcon=AfxGetApp()->LoadIcon(IDI_ICON1)}
voidCMyDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX)。
//{{AFX_DATA_MAP(CMyDlg)
。
DDX_Control(pDX,IDC_volslider,m_controlvol)。
DDX_Control(pDX,IDC_playslider,m_process)DDX_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 简单 音频 播放 程序 实现