欢迎来到天天文库
浏览记录
ID:19808276
大小:1.94 MB
页数:25页
时间:2018-10-06
《多媒体与网络编程实验报告1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验10多媒体与网络编程【测试题1】编写代码实现制作一个音频文件播放器。只需要实现如图所示的简单界面,点击打开弹出对话框,打开一个.wav的波形音频文件,点击“播放”按钮开始播放,点击“停止”按钮则停止播放,按“关机”按钮则退出应用程序。需求分析:1,项目背景和原因。波形音频是一种电子数字化的声音,是计算机播放音频的一种重要格式,它存储的是声音的波形信息,当播放波形音频时,不管播放文件的设备是何种类型,都会得到相似的声音,波形音频文件通常wav作为文件扩展名。由于采用波形音频存储电子化声音需要大量的存储空间,因此它一般只用于短时间的声音播放。通过设计一个简单的波形音
2、频播放器,了解MFC,了解接口类MCI。2,波形音频播放器的功能播放器有“打开”,“播放”,“停止”,“关机”三个按钮,同时有一个状态栏,用于显示播放器当前处于的状态。“打开”按钮用于打开一个波形音频文件;“播放”用于播放选中的波形音频文件;“停止”用于暂停正在播放的音频文件,再次点击“播放”时会从暂停出继续播放;“关机”用于退出播放器。播放器界面如图所示:3,数据字典类向导ClassWizard静态文本StaticText按钮CommandButton,4,功能列表“打开”-------------------voidCWaverDlg::OnOpen()“播放”
3、-------------------voidCWaverDlg::OnPlay()“停止”-------------------voidCWaverDlg::OnStop()“关机”-------------------voidCWaverDlg::OnExit()5,具体实现步骤,1、首先在VisualC++平台上,选择File->New,新建一个名为WaveAudio.h的头文件。代码如下:#if!defined(WAVE_H_INCLUDED_)#defineWAVE_H_INCLUDED_#include"mmsystem.h"classCWave{pub
4、lic:BOOLm_bPlaying;BOOLm_bOpen;WORDm_wDeviceID;public:CWave();virtual~CWave();DWORDOpen(CStringstrFileName);//DWORDClose();DWORDPlay();voidStop();DWORDClose();};#endif2、接下来再新建WaveAudio.cpp文件。代码如下:#include"mmsystem.h"#include"stdafx.h"#include"afxwin.h"#include"WaveAudio.h"CWave::CWave(
5、){m_bPlaying=FALSE;m_bOpen=FALSE;m_wDeviceID=NULL;}CWave::~CWave(){Close();}DWORDCWave::Open(CStringstrFileName){if(m_bOpen)Close();DWORDdwOpenFlag;MCI_OPEN_PARMSmciOpenParam;mciOpenParam.lpstrDeviceType="WaveAudio";mciOpenParam.lpstrElementName=strFileName;dwOpenFlag=mciSendCommand(NU
6、LL,MCI_OPEN,MCI_OPEN_ELEMENT
7、MCI_OPEN_TYPE,(DWORD)(LPVOID)&mciOpenParam);if(dwOpenFlag)returndwOpenFlag;m_wDeviceID=mciOpenParam.wDeviceID;m_bOpen=TRUE;dwOpenFlag=0;MCI_SET_PARMSmciSetParam;mciSetParam.dwTimeFormat=MCI_FORMAT_MILLISECONDS;dwOpenFlag=mciSendCommand(m_wDeviceID,MCI_SET,M
8、CI_SET_TIME_FORMAT,(DWORD)(LPVOID)&mciSetParam);if(dwOpenFlag)returndwOpenFlag;return0;}DWORDCWave::Play(){MCI_PLAY_PARMSmciPlayParam;DWORDdwPlayFlag;dwPlayFlag=mciSendCommand(m_wDeviceID,MCI_PLAY,NULL,(DWORD)(LPVOID)&mciPlayParam);if(dwPlayFlag)returndwPlayFlag;else{m_bPlaying=TRUE;
此文档下载收益归作者所有