实验7 波形音频播放器
实验目的
了解Wave文件格式,并学习Windows下用MCI函数播放Wave文件。
熟悉多媒体开发工具——Visual C++。
制作波形音频播放器。其运行界面如下图所示:
要求此播放器具有打开、播放、录制及保存波形音频文件的功能。
预备知识
VC6编程方法,MCI编程方法。
Wave文件的结构
用.wav为扩展名的文件格式称为波形文件格式(WAVE File Format),资源交换文件格式(Resource Interchange File Format,RIFF)MFC AppWizard (exe)后,选好你文件所需存储的目录,然后在工程中填入工程文件名,如下图所示:
点击确定按钮在弹出的对话框中,按下图进行设置后,点击“完成”。
编制应用程序界面:
各控件的属性如下表所示:
控件 ID 标题 控件 ID 标题 Group Box IDC_STATIC 波形音频信息 Static IDC_RESOLUTION Static IDC_STATIC 波形文件: Static IDC_WAVE_LENGTH Static IDC_STATIC 声道: Button IDC_OPEN 打开 Static IDC_STATIC 采样率: Button IDC_PLAY 播放 Static IDC_STATIC 音频长度: Button IDC_RECORD 录制 Static IDC_WAVE_NAME Button IDC_SAVE 保存 Static IDC_CHANNEL Button IDC_STOP 停止 Static IDC_SAMPLE_RATE Picture IDC_WAVE_GRAPH
点击查看(建立类向导,在Message Maps中建立相应的消息函数OnOpen(), OnPlay(), OnRecord(), OnSave(), OnStop(),点击确定。
-
建立处理波形音频的类CWaveAudio:工程(添加工程(Components and Controls,选中Wave Audio.ogx文件(插入,可重用类CWaveAudio便添加到工程中。在CWavePlayerDlg类的头文件中将CWaveAudio的头文件包含进来,即#include “media.h”。
加入所需的功能:
在CWavePlayerDlg类中加入以下成员变量
CString path;//文件目录
CWaveAudio m_Wave;//可重用类的对象
int INFO_WAVEWIDE;//绘图框的宽度
int INFO_WAVEDEEP;//绘图框的高度
bool m_bOpen;//判断是否有波形音频文件打开
右键点击Class中的CWavePlayerDlg,选中Add Number Function,如下所示,将绘图函数
void DrawWave(HDC hdc, unsigned int x, unsigned int y, char* path)加到CWavePlayerDlg中。
在BOOL CWavePlayerDlg::OnInitDialog()中进行初始化:
CWnd* m_pWnd;
m_pWnd=GetDlgItem(IDC_PLAY);
m_pWnd-EnableWindow(false);
m_pWnd=GetDlgItem(IDC_SAVE);
m_pWnd-EnableWindow(false);
在OnOpen(), OnPlay(), OnRecord(), OnSave(), OnStop() 中添加代码如下:
void CWavePlayerDlg::OnOpen()
{
// TODO: Add your control notification handler code here
CString Filter,str;
Filter= 波形音频文件(*.WAV)|*.WAV||;
CFileDialog FileDlg(true,NULL,NULL,OFN_HIDEREADONLY,Filter);
if(FileDlg.DoModal()==IDOK)
{
if(!m_Wave.Load(FileDlg.GetFileName()))
{
MessageBox(不能打开文件!,错误,MB_OK|MB_ICONSTOP);
}
CWnd* m_pWnd;
m_pWnd=GetDlgItem(IDC_PLAY);
m_pWnd-EnableWindow(true);
}
path=FileDlg.GetPathNam
您可能关注的文档
- 如何用好胰岛素太经典资料.ppt
- 如何在生活中帮助孩子学好作文资料.ppt
- 如何掌控开发商所委托的物业管理项目资料.doc
- 如何找同源基因并用DNAman比对序列资料.ppt
- 如何正确书写化学方程式资料.ppt
- 如何制作丰富多彩的-N资料.ppt
- 如何制作漂亮的Excel资料.ppt
- 如何做毕业论文资料.ppt
- 如何做好网络营销资料.ppt
- 如何做一份完美的数据分析报告资料.ppt
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
原创力文档

文档评论(0)