多媒体与网络编程实验报告Word文档格式.docx
- 文档编号:875765
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:29
- 大小:342.61KB
多媒体与网络编程实验报告Word文档格式.docx
《多媒体与网络编程实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《多媒体与网络编程实验报告Word文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
代码如下:
#if!
defined(WAVE_H_INCLUDED_)
#defineWAVE_H_INCLUDED_
#include"
mmsystem.h"
classCWave
{
public:
BOOLm_bPlaying;
BOOLm_bOpen;
WORDm_wDeviceID;
CWave();
virtual~CWave();
DWORDOpen(CStringstrFileName);
//DWORDClose();
DWORDPlay();
voidStop();
DWORDClose();
};
#endif
2、接下来再新建WaveAudio.cpp文件。
stdafx.h"
afxwin.h"
WaveAudio.h"
CWave:
CWave()
m_bPlaying=FALSE;
m_bOpen=FALSE;
m_wDeviceID=NULL;
}
~CWave()
Close();
DWORDCWave:
Open(CStringstrFileName)
if(m_bOpen)
Close();
DWORDdwOpenFlag;
MCI_OPEN_PARMSmciOpenParam;
mciOpenParam.lpstrDeviceType="
WaveAudio"
;
mciOpenParam.lpstrElementName=strFileName;
dwOpenFlag=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|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,MCI_SET_TIME_FORMAT,(DWORD)(LPVOID)&
mciSetParam);
return0;
Play()
MCI_PLAY_PARMSmciPlayParam;
DWORDdwPlayFlag;
dwPlayFlag=mciSendCommand(m_wDeviceID,MCI_PLAY,NULL,(DWORD)(LPVOID)&
mciPlayParam);
if(dwPlayFlag)
returndwPlayFlag;
else{
m_bPlaying=TRUE;
return0;
}
voidCWave:
Stop()
mciSendCommand(m_wDeviceID,MCI_STOP,NULL,NULL);
Close()
if(m_wDeviceID)
{
DWORDdwCloseFlag;
mciSendCommand(m_wDeviceID,MCI_STOP,MCI_WAIT,NULL);
dwCloseFlag=mciSendCommand(m_wDeviceID,MCI_CLOSE,NULL,NULL);
if(dwCloseFlag)
{
AfxMessageBox("
关闭时出错"
);
returndwCloseFlag;
}
3、新建一个基于对话框类的工程,取名为Waver。
在工作区FileView中右键单击Waver,选择“添加到工程”为工程添加WaveAudio.cpp
和WaveAudio.h文件。
然后在“工程”->
“设置”的“连接”中为工程添加winmm.lib。
这之后,需要在文件WaverDlg.h的头部添加#include“WaveAudio.h”。
最后在CwaverDlg类中添加成员变量:
protect:
CWavem_Wave;
CStringm_strFileName;
4、按照要求设计对话框(IDD_WAVER_DIALOG)的界面。
要求:
“打开”—按钮—IDC_OPEN
“播放”—按钮—IDC_PLAY
“停止”—按钮—IDC_STOP
“关机”—按钮—IDC_EXIT
“状态”—静态文本—IDC_STATIC
编辑框—IDC_STATUS
5、用类向导为对话框添加控件变量
IDC_OPENm_btOpen
IDC_PLAYm_btnPlay
IDC_STATUSm_strStatus
6、用类向导为各个函数添加代码
voidCWaverDlg:
OnPlay()
//TODO:
Addyourcontrolnotificationhandlercodehere
if(m_Wave.Play())
AfxMessageBox("
播放出错"
m_Wave.m_bPlaying=TRUE;
m_strStatus="
正在播放……"
UpdateData(FALSE);
OnOpen()
CStringFilter;
charbuf[128];
DWORDdwFlag;
Filter="
波形音频文件(*.WAV)|*.WAV||"
CFileDialogfileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,Filter);
if(fileDlg.DoModal()==IDOK)
m_strFileName=fileDlg.GetPathName();
dwFlag=m_Wave.Open(m_strFileName);
if(dwFlag)
mciGetErrorString(dwFlag,buf,strlen(buf));
AfxMessageBox(buf);
m_btnPlay.EnableWindow(TRUE);
m_strStatus=m_strFileName+"
文件已经正确打开."
UpdateData(FALSE);
OnStop()
m_btnPlay.EnableWindow(TRUE);
m_btnOpen.EnableWindow(TRUE);
if(m_Wave.m_bPlaying)
m_strStatus="
播放停止……"
m_Wave.Stop();
OnExit()
OnCancel();
6、运行结果
【测试题2】
BMP位图显示程序,如下图所示,用一个简单的SDI工程实现单击“文件”->
“打开”,选择一个.bmp文件,如果不是真正的BMP文件,或者不是真彩色的BMP文件,程序都将报告有关信息。
如果用户选择的是真彩色的BMP文件,则程序会在客户区显示整个图像。
通过编写图片浏览器进一步加深对VC++编程的理解
2,视频播放器的功能
界面上有“选择图片”、“改变图片大小”两个按钮。
“选择图片”用于打开一个图片文件,文件格式不限;
“改变图片大小”用于扩大或缩小图片。
3功能列表
“打开图片”----------OnFileopen()
“改变图片大小”---------OnVideo1x()、OnVideo2x()
4,具体实现步骤
1、建立工程,,工程名为Image。
2、设计界面按钮
3、功能列表
“打开”
voidCCTLY2412Dlg:
OnFileopen()
Addyourcommandhandlercodehere
charszFileFilter[]=
"
Mp4File(*.mp4)|*.mp4|"
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(*.*)|*.*||"
CFileDialogFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
if(FileDlg.DoModal()==IDOK)
{
CStringPathName=FileDlg.GetPathName();
PathName.MakeUpper();
m_AMovie.SetFileName(PathName);
放大图片
OnVideo1x()
m_AMovie.Pause();
m_AMovie.SetMovieWindowSize
(1);
m_AMovie.Run();
缩小图片
OnVideo2x()
m_AMovie.SetMovieWindowSize
(2);
5,运行结果
【测试题3】
编写一个AVI视频播放器程序,能够播放AVI视频文件。
“文件”->
“打开”菜单项,选择一个AVI文件,则程序在客户区的左上角创建一个MCIWnd窗口,并且窗口中已该AVI文件的首幅画面。
按下MCIWnd窗口控制条中的“播放”按钮就开始播放该AVI文件。
目前有很多视频播放器,例如暴风影音、迅雷看看等,这些软件都可以很方便的播放各种格式的视频文件。
通过自行设计一个建简易播放器,使初学者了解用vc编写视频播放器的方法。
2,视频播放器的功能
编写一个简单的播放器,此播放器应具有播放至少AVI格式的功能。
播放器中有“文件”、“播放”、“视频”、“音频”、“静音”、“消除静音”和“帮助”七个按钮。
“文件”按钮下又有“打开”、“关闭”、“退出”三个按钮,其中“打开”用于打开一个视频文件;
“关闭”用于关闭当前的视频;
“退出”用于退出播放器。
“播放”按钮下有“开始”、“暂停”、“停止”,其中“开始”用于开始播放当前视频;
“暂停”用于暂停正在播放的视频,当点击“开始”时从暂停的地方继续播放;
“停止”用于停止正在播放的视频,当点击“开始”时又从开头播放。
“视频”下又有“原始大小”、“放大2倍”、“缩小2倍”按钮。
点击“原始大小”时,播放器窗口大小不变;
点击“放大2倍”时,播放器窗口放大为原来的两倍;
点击“缩小2倍”时,播放器窗口缩小为原来的一半。
“音频”下有“调节音量”、“调节左右声道平衡”。
“调节音量”下又有“增加”和“减小”两个按钮,分别用于增加音量和减小音量;
而“调节左右声道平衡”在此播放器中并没有实际功能,若要实现调节左右声道平衡的功能要添加相应的代码,此时此刻我们的目的是要实现一些简单功能就可以了,所以不必理会“调节左右声道平衡”。
“帮助”按钮下还有个“关于播放器”的按钮,由于并没有给其编写相应的代码,也没有实际功能。
窗口如下:
3,数据字典
4,功能列表
播放器中所有的功能及其代码如下(所有的函数定义在类CCTLY2412Dlg中):
“打开”-----------------OnFileopen()
“关闭”-------------------OnFileclose()
“退出”-----------------OnFileexit()
“开始”-----------------OnPlaystart()
“暂停”-----------------OnPlaypause()
“停止”-----------------OnPlaystop()
“原始大小”------------OnVideo1x()
“放大2倍”-----------OnYi()
“缩小2倍”-----------OnVideo2x()
“增加”------------------OnAdd()
“减小”------------------OnDown()
“静音”------------------OnQiuet()
“消除静音”------------OnHuifu()
5,具体实现步骤
首先:
注册该控件在windows“运行”里写入:
regsvr32msdrm.ocx单击确定。
1、建立基于对话框的工程,工程名为CTLY2412。
2、删除IDD_PLAYER_DIALOG对话框中的一个OK按钮、一个Cancel按钮和一个文本框,在对话框中插入一个菜单项,在菜单项中添加子菜单,具体要求见表格
顶层菜单项
子菜单项
ID号
文件(&
F)
打开(&
O)
ID_FILEOPEN
关闭(&
C)
ID_FILECLOSE
退出(&
X)
ID_FILEEXIT
播放(&
P)
开始(&
S)
ID_PLAYSTART
暂停(&
ID_PLAYPAUSE
停止(&
T)
ID_PLAYSTOP
视频(&
V)
原始大小(&
ID_VIDEO1X
原始大小的2倍(&
D)
ID_VIDEO2X
音频(&
A)
调节音量(&
ID_AUDEOVOLUME
调节左右声道平衡(&
B)
ID_AUDEOBALANCE
帮助(&
H)
关于播放器(&
ID_HELPABOUT
3、用类向导为菜单添加类CTCY2412Dlg,与对话框关联起来。
4、在对话框中添加ActiveMovie控件,ID为IDC_AMOVIE。
如图:
5、用类向导为IDC_AMOVIE映射一个成员变量m_AMovie
6、用类向导实现各个按钮的功能,为
“打开”--OnFileopen()“关闭”--OnFileclose()“退出”---OnFileexit()
“开始”--OnPlaystart()“暂停”-OnPlaypause()“停止”--OnPlaystop()“原始大小”OnVideo1x()“放大2倍”---OnYi(“缩小2倍”---OnVideo2x()“增加”---OnAdd()“减小”--OnDown()
添加代码。
OnFileclose()
m_AMovie.SetFileName("
----------------------------------------------------------------------------------------------------------
OnFileexit()
-------------------------------------------------------------------------------------------------------------
OnPlaystart()
m_AMovie.Run();
SetTimer(0,20,NULL);
//设置定时器
OnPlaypause()
------------------------------------------------------------------------------------------------------------
OnPlaystop()
m_AMovie.Stop();
KillTimer(0);
//关掉定时器
--------------------------------------------------------------------------------------------------------------
----------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体 网络 编程 实验 报告