多媒体与网络编程实验报告1.doc_第1页
多媒体与网络编程实验报告1.doc_第2页
多媒体与网络编程实验报告1.doc_第3页
多媒体与网络编程实验报告1.doc_第4页
多媒体与网络编程实验报告1.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验10 多媒体与网络编程【测试题1】编写代码实现制作一个音频文件播放器。只需要实现如图所示的简单界面,点击打开弹出对话框,打开一个.wav的波形音频文件,点击“播放”按钮开始播放,点击“停止”按钮则停止播放,按“关机”按钮则退出应用程序。需求分析:1, 项目背景和原因。波形音频是一种电子数字化的声音,是计算机播放音频的一种重要格式,它存储的是声音的波形信息,当播放波形音频时,不管播放文件的设备是何种类型,都会得到相似的声音,波形音频文件通常wav作为文件扩展名。由于采用波形音频存储电子化声音需要大量的存储空间,因此它一般只用于短时间的声音播放。通过设计一个简单的波形音频播放器,了解MFC,了解接口类MCI。2,波形音频播放器的功能播放器有“打开”,“播放”,“停止”,“关机”三个按钮,同时有一个状态栏,用于显示播放器当前处于的状态。“打开”按钮用于打开一个波形音频文件;“播放”用于播放选中的波形音频文件;“停止”用于暂停正在播放的音频文件,再次点击“播放”时会从暂停出继续播放;“关机”用于退出播放器。播放器界面如图所示:3, 数据字典类向导 ClassWizard静态文本 Static Text按钮 Command Button,4,功能列表“打开”- void CWaverDlg:OnOpen()“播放”- void CWaverDlg:OnPlay()“停止”- void CWaverDlg:OnStop()“关机”- void CWaverDlg:OnExit()5, 具体实现步骤,1、首先在VisualC+平台上,选择File-New,新建一个名为WaveAudio.h的头文件。代码如下:#if!defined(WAVE_H_INCLUDED_)#define WAVE_H_INCLUDED_#include mmsystem.hclass CWavepublic:BOOL m_bPlaying;BOOL m_bOpen;WORD m_wDeviceID;public:CWave();virtualCWave();DWORD Open(CString strFileName);/DWORD Close();DWORD Play();void Stop();DWORD Close();#endif2、接下来再新建WaveAudio.cpp文件。代码如下:#include mmsystem.h#include stdafx.h#include afxwin.h#include WaveAudio.hCWave:CWave()m_bPlaying=FALSE;m_bOpen=FALSE;m_wDeviceID=NULL;CWave:CWave()Close();DWORD CWave:Open(CString strFileName)if(m_bOpen)Close();DWORD dwOpenFlag;MCI_OPEN_PARMS mciOpenParam;mciOpenParam.lpstrDeviceType=WaveAudio;mciOpenParam.lpstrElementName=strFileName;dwOpenFlag=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_OPEN_TYPE,(DWORD)(LPVOID)&mciOpenParam);if(dwOpenFlag)return dwOpenFlag;m_wDeviceID=mciOpenParam.wDeviceID;m_bOpen=TRUE;dwOpenFlag=0;MCI_SET_PARMS mciSetParam;mciSetParam.dwTimeFormat=MCI_FORMAT_MILLISECONDS;dwOpenFlag=mciSendCommand(m_wDeviceID,MCI_SET,MCI_SET_TIME_FORMAT,(DWORD)(LPVOID)&mciSetParam);if(dwOpenFlag)return dwOpenFlag;return 0;DWORD CWave:Play()MCI_PLAY_PARMS mciPlayParam;DWORD dwPlayFlag;dwPlayFlag=mciSendCommand(m_wDeviceID,MCI_PLAY,NULL,(DWORD)(LPVOID)&mciPlayParam);if(dwPlayFlag)return dwPlayFlag;elsem_bPlaying=TRUE;return 0;void CWave:Stop()mciSendCommand(m_wDeviceID,MCI_STOP,NULL,NULL);DWORD CWave:Close()if(m_wDeviceID)DWORD dwCloseFlag;mciSendCommand(m_wDeviceID,MCI_STOP,MCI_WAIT,NULL);dwCloseFlag=mciSendCommand(m_wDeviceID,MCI_CLOSE,NULL,NULL);if(dwCloseFlag)AfxMessageBox(关闭时出错);return dwCloseFlag;m_bOpen=FALSE;m_bPlaying=FALSE;m_wDeviceID=NULL;return 0;3、新建一个基于对话框类的工程,取名为Waver。在工作区FileView中右键单击Waver,选择“添加到工程”为工程添加WaveAudio.cpp和WaveAudio.h文件。然后在“工程”-“设置”的“连接”中为工程添加winmm.lib。这之后,需要在文件WaverDlg.h的头部添加#include “WaveAudio.h”。最后在CwaverDlg类中添加成员变量:protect:CWave m_Wave;CString m_strFileName;4、按照要求设计对话框(IDD_WAVER_DIALOG)的界面。要求:“打开”按钮IDC_OPEN“播放”按钮IDC_PLAY“停止”按钮IDC_STOP“关机”按钮IDC_EXIT“状态”静态文本IDC_STATIC编辑框IDC_STATUS5、用类向导为对话框添加控件变量IDC_OPEN m_btOpenIDC_PLAY m_btnPlayIDC_STATUS m_strStatus6、用类向导为各个函数添加代码void CWaverDlg:OnPlay() / TODO: Add your control notification handler code hereif(m_Wave.Play()AfxMessageBox(播放出错);m_Wave.m_bPlaying=TRUE;m_strStatus=正在播放;UpdateData(FALSE);void CWaverDlg:OnOpen() / TODO: Add your control notification handler code hereCString Filter;char buf128;DWORD dwFlag;Filter=波形音频文件(*.WAV)|*.WAV|;CFileDialog fileDlg(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);void CWaverDlg:OnStop() / TODO: Add your control notification handler code herem_btnPlay.EnableWindow(TRUE);m_btnOpen.EnableWindow(TRUE); if(m_Wave.m_bPlaying)m_strStatus=播放停止;UpdateData(FALSE);m_Wave.Stop();void CWaverDlg:OnExit() / TODO: Add your control notification handler code hereOnCancel();6、运行结果【测试题2】BMP位图显示程序,如下图所示,用一个简单的SDI工程实现单击“文件”-“打开”,选择一个.bmp文件,如果不是真正的BMP文件,或者不是真彩色的BMP文件,程序都将报告有关信息。如果用户选择的是真彩色的BMP文件,则程序会在客户区显示整个图像。需求分析:1, 项目背景和原因。通过编写图片浏览器进一步加深对VC+编程的理解2, 视频播放器的功能界面上有“选择图片”、“改变图片大小”两个按钮。“选择图片”用于打开一个图片文件,文件格式不限;“改变图片大小”用于扩大或缩小图片。3功能列表“打开图片” -OnFileopen()“改变图片大小”- OnVideo1x()、OnVideo2x()4, 具体实现步骤1、建立工程,工程名为Image。2、设计界面按钮3、功能列表“打开” void CCTLY2412Dlg:OnFileopen() / TODO: Add your command handler code herechar szFileFilter=Mp4 File(*.mp4)|*.mp4|Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma|Video File(*.dat)|*.dat|Wave File(*.wav)|*.wav|AVI File(*.avi)|*.avi|Movie File(*.mov)|*.mov|Media File(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*.mid;*.rmi|MPEG File(*.mpeg)|*.mpeg|All File(*.*)|*.*|;CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFileFilter ); if( FileDlg.DoModal() = IDOK ) CString PathName = FileDlg.GetPathName(); PathName.MakeUpper(); m_AMovie.SetFileName(PathName); 放大图片void CCTLY2412Dlg:OnVideo1x() / TODO: Add your command handler code herem_AMovie.Pause();m_AMovie.SetMovieWindowSize(1);m_AMovie.Run();缩小图片void CCTLY2412Dlg:OnVideo2x() / TODO: Add your command handler code herem_AMovie.Pause();m_AMovie.SetMovieWindowSize(2);m_AMovie.Run();,5,运行结果【测试题3】编写一个AVI视频播放器程序,能够播放AVI视频文件。“文件”-“打开”菜单项,选择一个AVI文件,则程序在客户区的左上角创建一个MCIWnd窗口,并且窗口中已该AVI文件的首幅画面。按下MCIWnd窗口控制条中的“播放”按钮就开始播放该AVI文件。需求分析:1, 项目背景和原因。目前有很多视频播放器,例如暴风影音、迅雷看看等,这些软件都可以很方便的播放各种格式的视频文件。通过自行设计一个建简易播放器,使初学者了解用vc编写视频播放器的方法。2,视频播放器的功能编写一个简单的播放器,此播放器应具有播放至少AVI格式的功能。播放器中有“文件”、“播放”、“视频”、“音频”、“静音”、“消除静音”和“帮助”七个按钮。“文件”按钮下又有“打开”、“关闭”、“退出”三个按钮,其中“打开”用于打开一个视频文件;“关闭”用于关闭当前的视频;“退出”用于退出播放器。“播放”按钮下有“开始”、“暂停”、“停止”,其中“开始”用于开始播放当前视频;“暂停”用于暂停正在播放的视频,当点击“开始”时从暂停的地方继续播放;“停止”用于停止正在播放的视频,当点击“开始”时又从开头播放。“视频”下又有“原始大小”、“放大2倍”、“缩小2倍”按钮。点击“原始大小”时,播放器窗口大小不变;点击“放大2倍”时,播放器窗口放大为原来的两倍;点击“缩小2倍”时,播放器窗口缩小为原来的一半。“音频”下有“调节音量”、“调节左右声道平衡”。 “调节音量”下又有“增加”和“减小”两个按钮,分别用于增加音量和减小音量;而“调节左右声道平衡”在此播放器中并没有实际功能,若要实现调节左右声道平衡的功能要添加相应的代码,此时此刻我们的目的是要实现一些简单功能就可以了,所以不必理会“调节左右声道平衡”。“帮助”按钮下还有个“关于播放器”的按钮,由于并没有给其编写相应的代码,也没有实际功能。窗口如下: 3,数据字典类向导 ClassWizard 4,功能列表 播放器中所有的功能及其代码如下(所有的函数定义在类CCTLY2412Dlg中):“打开”-OnFileopen()“关闭”-OnFileclose()“退出”-OnFileexit()“开始”-OnPlaystart()“暂停”-OnPlaypause()“停止”-OnPlaystop()“原始大小”-OnVideo1x()“放大2倍”-OnYi()“缩小2倍”-OnVideo2x()“增加”-OnAdd()“减小”-OnDown()“静音”-OnQiuet()“消除静音”-OnHuifu()5,具体实现步骤 首先:注册该控件在windows“运行”里写入:regsvr32 msdrm.ocx 单击确定。1、建立基于对话框的工程,工程名为CTLY2412。2、删除IDD_PLAYER_DIALOG对话框中的一个OK按钮、一个Cancel按钮和一个文本框,在对话框中插入一个菜单项,在菜单项中添加子菜单,具体要求见表格顶层菜单项子菜单项ID号文件(&F)打开(&O)ID_FILEOPEN关闭(&C)ID_FILECLOSE退出(&X)ID_FILEEXIT播放(&P)开始(&S)ID_PLAYSTART暂停(&P)ID_PLAYPAUSE停止(&T)ID_PLAYSTOP视频(&V)原始大小(&O)ID_VIDEO1X原始大小的2倍(&D)ID_VIDEO2X音频(&A)调节音量(&V)ID_AUDEOVOLUME调节左右声道平衡(&B)ID_AUDEOBALANCE帮助(&H)关于 播放器(&A)ID_HELPABOUT3、用类向导为菜单添加类CTCY2412Dlg,与对话框关联起来。4、在对话框中添加ActiveMovie控件,ID为IDC_AMOVIE。如图: 5、用类向导为IDC_AMOVIE映射一个成员变量m_AMovie6、用类向导实现各个按钮的功能,为“打开”-OnFileopen()“关闭”-OnFileclose()“退出”-OnFileexit()“开始”-OnPlaystart()“暂停”-OnPlaypause()“停止”-OnPlaystop()“原始大小”OnVideo1x()“放大2倍”-OnYi(“缩小2倍”-OnVideo2x()“增加”-OnAdd()“减小”-OnDown()添加代码。void CCTLY2412Dlg:OnFileopen() / TODO: Add your command handler code herechar szFileFilter=AVI File(*.avi)|*.avi|Mp4 File(*.mp4)|*.mp4|Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma|Video File(*.dat)|*.dat|Wave File(*.wav)|*.wav|Movie File(*.mov)|*.mov|Media File(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*.mid;*.rmi|MPEG File(*.mpeg)|*.mpeg|All File(*.*)|*.*|;CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFileFilter ); if( FileDlg.DoModal() = IDOK ) CString PathName = FileDlg.GetPathName(); PathName.MakeUpper(); m_AMovie.SetFileName(PathName); void CCTLY2412Dlg:OnFileclose() / TODO: Add your command handler code herem_AMovie.SetFileName();-void CCTLY2412Dlg:OnFileexit() / TODO: Add your command handler code hereOnCancel();-void CCTLY2412Dlg:OnPlaystart() / TODO: Add your command handler code herem_AMovie.Run();SetTimer(0,20,NULL);/设置定时器-void CCTLY2412Dlg:OnPlaypause() / TODO: Add your command handler code herem_AMovie.Pause();-void CCTLY2412Dlg:OnPlaystop() / TODO: Add your command handler code herem_AMovie.Stop(); KillTimer(0);/关掉定时器void CCTLY2412Dlg:OnVideo1x() / TODO: Add your command handler code herem_AMovie.Pause();m_AMovie.SetMovieWindowSize(1);m_AMovie.Run();-void CCTLY2412Dlg:OnVideo2x() / TODO: Add your command handler code herem_AMovie.Pause();m_AMovie.SetMovieWindowSize(2);m_AMovie.Run();-void CCTLY2412Dlg:OnAdd() / TODO: Add your command handler code herelong m_valume= m_AMovie.GetVolume (); /获取当前音量 m_AMovie.Pause (); m_AMovie.SetVolume(m_valume+200); /用于增加音量 m_AMovie.Run (); -void CCTLY2412Dlg:OnDown() / TODO: Add your command handler code herelong m_valume= m_AMovie.GetVolume (); m_AMovie.Pause (); m_AMovie.SetVolume(m_valume-200); /用于减小音量 m_AMovie.Run (); -void CCTLY2412Dlg:OnQiuet() / TODO: Add your command handler code herem_AMovie.Pause (); m_AMovie.SetVolume(-5000); m_AMovie.Run (); -void CCTLY2412Dlg:OnHuifu() long m_valume= m_AMovie.GetVolume (); TODO: Add your command handler code herem_AMovie.Pause (); m_AMovie.SetVolume(m_valume+4000); m_AMovie.Run (); -void CCTLY2412Dlg:OnYi() / TODO: Add your command handler code herem_AMovie.Pause(); m_AMovie.SetMovieWindowSize(4); m_AMovie.Run();5、运行结果(说明:可以正常播放,只是截图时会产生黑屏)【测试题4】设计一个浏览器,实现Web浏览功能。设计思想:MFC提供了一个CHtmlView类,它派生自文档/视图结构,实现了Web浏览功能。其中,最重要的方法就是Navigate函数,通过给它指定参数就可以浏览指定的Web页。1、 项目背景和原因。随着互联网在世界范围的广泛应用,网络浏览器便是信息交流中必不可少的工具。本题目要求同学在熟练掌握VC下有关网络编程理论的基础上,实现一个能够浏览网页的浏览器。2, 网络浏览器的功能通过地址栏输入网址,按回车键便可以访问互联网。浏览网页时,地址栏会显示当前网页的地址。3, 数据字典类向导 ClassWizard4, 功能介绍CHtmlView类的主要功能是访问Web网站和HTML文档。这是由于CHtmlView类在MFC的文档/视图结构(MFCs document/view architecture)环境中,进一步提供了WebBrowser控件的功能,可以说CHtmlView类是对WebBrowser控件的封装。 WebBrowser控件支持通过超链接和统一资源定位器URL导航的Web浏览。 使得应用程序成了一个Web浏览器(web browser)。要创建一个Web浏览器型的应用程序,可以使用CHtmlView类。通过MFC应用程序向导实现。CHtmlView 类的成员函数获取和设置属性(Attributes)的成员函数(1)CString GetType( ) const;(2)long GetLeft( ) const;void SetLeft( long nNewValue );(3)long GetTop( ) const;void SetTop( long nNewValue );(4)long GetHeight( ) const; void SetHeight( long nNewValue ); (5)BOOL GetVisible( ) const;void SetVisible( BOOL bNewValue );void GoBack( ); 导航到历史列表的前一个条目void GoForward( ); 导航到历史列表的下一个条目。void GoHome( ); 导航到主页,该主页在IE的属性中设置。void GoSearch( ); 导航到当前搜索页。该页在IE的属性中设置。void Refresh( );重新装入浏览器当前正在显示的URL或者文件,即刷新。void Stop( ); 撤销任何未完成的导航或下载,并且停止任何动态的页面元素,例如背景音乐和动画。Navigate 导航到由URL指定的资源。Navigate2 导航到由URL指定的资源或者由全路径指定的文件。PutProperty 设置与所给定的对象相关的属性的当前值。GetProperty 返回与所给定的对象相关的属性的当前值。ExecWB 执行一个命令。LoadFromResource 在WebBrowser控件中装入一个资源。 5、具体实现步骤1、利用MFC AppWizard生成应用程序框架工程名为myWeb,第一步,工程类型为单文档(SDI),中文语言支持。第二步和第三步使用默认值,不需要数据库,也不提供对于复合对象的支持。第四步选择Internet Explorer ReBars工具栏的风格,这样就有了用来输入网址的文本框。第五步不作任何修改,第六步应选择CHtmlView类作为视图类的基类。2、修改菜单,添加用户需要的功能条目。菜单条目名称(Caption)ID号前进ID_FOWARD后退ID_BACK停止ID_STOP刷新ID_UPDATE主页ID_HOMEPAGE搜索ID_SEARCH按照表格添加其他功能。3、在工具栏上增加新的按钮,以便快速执行所需的功能。在工作区中选择ResourceView卡,选择ToolBar,双击工具条控件的名字(IDR_MAINFRAME),右边出现程序的工具条。4、用类向导为各个功能实现添加代码/前进到下一个网页void CMyWebView:OnFoward() GoForward(); /退到前一个网页void CMyWebView:OnBack() GoBack(); /停止网页的下载void CMyWebView:OnStop() Stop(); /刷新当前的网页void CMyWebView:OnUpdate() Refresh(); /回到主页void CMyWebView:OnHomepage() GoHome(); /进行搜索void CMyWebView:OnSearch() GoSearch(); 给对话框IDR_MAINFRAME添加一个“地址:”的静

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论