《多媒体编程》ppt课件

上传人:tian****1990 文档编号:74223055 上传时间:2019-01-27 格式:PPT 页数:44 大小:455.81KB
返回 下载 相关 举报
《多媒体编程》ppt课件_第1页
第1页 / 共44页
《多媒体编程》ppt课件_第2页
第2页 / 共44页
《多媒体编程》ppt课件_第3页
第3页 / 共44页
《多媒体编程》ppt课件_第4页
第4页 / 共44页
《多媒体编程》ppt课件_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《《多媒体编程》ppt课件》由会员分享,可在线阅读,更多相关《《多媒体编程》ppt课件(44页珍藏版)》请在金锄头文库上搜索。

1、第 12 章 多媒体编程 12.1 多媒体程序设计基础 12.2 Windows的多媒体服务 12.3 ActiveX控件,Visual C+程序设计与应用教程,2,12.1 多媒体程序设计基础,多媒体中的“媒体”是指一种表达某种信息内容的形式,如声音、图像、图形和文字等。 所谓多媒体就是多种信息的表达方式或者是多种信息的类型。,3,12.1.1 多媒体程序设计的原理,Windows操作系统对多媒体的支持包括硬件和软件两个方面。 硬件支持包括对硬件设备即插即用(PNP)的支持,系统自动分配输入输出地址(IO)和中断号(IRQ)。 软件的支持体现在多媒体应用程序开发的设备无关性,表现为应用程序通

2、过操作系统提供的多媒体驱动程序访问硬件设备。,4,12.1.2 多媒体数据格式,Windows支持多种不同的多媒体数据格式,但是总的说可以分为两大类:音频和视频。,5,1音频 音频信息是随时间变化的模拟信号,为将其变成计算机能够处理的数字信号,必须通过模数转换器进行信号转换。 经计算机处理后的音频信息在播放时,需通过数模转换器将数字信号重新还原为模拟信号。实现这两种转换机制的模数转换器和数模转换器均集成在声卡中。 在计算机技术发展的初期,计算机中音频格式的数据文件主要是MIDI和WAV两种类型。但是随着计算机技术的发展又出现了MP3、RM等不同类型的音频数据格式。,6,2视频 视频格式的内容主

3、要满足人们观赏需要。它可以是一系列活动的图像,也可以是静止的图像,同时也可以包括音频的内容。 在计算机技术发展的初期,计算机中视频格式的数据文件主要是AVI格式的活动图像和BMP格式的静止图像。但是随着计算机技术的发展又出现了RM、MPEG等不同类型的视频数据格式。,7,12.2 Windows的多媒体服务,Windows提供了丰富的多媒体服务功能,包括大量从低级到高级的多媒体API函数。 为了利用这些API,使用Visual C+设计多媒体应用程序通常需要下面3个步骤:,8,引用头文件。对于大多数多媒体函数的引用必须在系统中包含头文件mmsystem.h,该文件包含了有关多媒体函数的原型、数

4、据结构及相关常数的定义。 链接多媒体函数库winmm.lib。绝大多数的多媒体函数存在于独立的多媒体函数中,因此,必须在应用程序中予以说明。 在应用程序中写入执行多媒体调用的代码。,9,12.2.1 高级音频函数,Windows提供了3个特殊的播放声音的高级音频函数: 1MessageBeep( )函数 BOOL MessageBeep(UINT uType); 该函数主要用来播放系统报警声音。,10,2PlaySound()函数 BOOL PlaySound(LPCSTR pszSound,HMODULE hmod,DWORD fdwSound); 参数pszSound是指定了要播放声音的字

5、符串,该参数可以是波形文件的文件名,或是波形(WAVE)资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL,则停止正在播放的声音。,11,假设在C:WindowsMedia目录下有一个名为Sound.wav的声音文件。下面使用3种方法调用PlaySound()函数来播出这个声音文件。 直接播出声音文件 PlaySound(“c:WindowsmediaSound.wav”,NULL, SND_FILENAME|SND_ASYNC);,12,把声音文件加入到资源中,然后从资源中播放声音 Visual C+支持WAVE型资源,用户在资源视

6、图中单击鼠标右键并选择Import命令,然后在文件选择对话框的文件类型选择框中选择Wave File(*.wav)文件,然后在文件选择框中选择Sound.wav,则将Sound.wav文件加入到WAVE资源中。缺省时声音资源的ID为IDR_WAVE1。 PlaySound(MAKEINTRESOURCE(IDR_WAVE1), AfxGetInstanceHandle(), SND_RESOURCE|SND_ASYNC);,13,用PlaySound()函数播放系统声音 Windows启动的声音是由SystemStart定义的系统声音,用下面的方法播放启动声音: PlaySound(“Syst

7、emStart”,NULL,SND_ALIAS|SND_ASYNC);,14,3sndPlaySound()函数 sndPlaySound()函数的功能与PlaySound()类似: BOOL sndPlaySound(LPCSTR lpszSound,UINT fuSound); 除了不能指定资源名字外,参数lpszSound与PlaySound()是一样的。 sndPlaySound()函数不能直接播放声音资源。要用该函数播放WAVE文件,可按下面的方式调用: sndPlaySound(“Sound.wav“,SND_ASYNC);,15,【例12.1】编写一个基于对话框的应用程序Func

8、wav,利用高级音频函数完成一个简单的WAVE播放器的制作。运行效果如图所示。,16,12.2.2 多媒体控制接口MCI,MCI(Media Control Interface)媒体控制接口是Microsoft提供的一组多媒体设备和文件的标准接口 1MCI的设备类型 媒体控制接口允许控制两类设备: 简单设备,是指那些不需要文件的设备,如CD音频播放设备; 复合设备,是那些需要文件的设备,如数字视频及波形音频设备等。,17,2MCI接口函数 一般来说,访问 MCI,通常使用两个高级接口函数:命令字符串接口mciSendString()和命令消息接口mciSendCommand()。,18,(1)

9、mciSendString()函数 MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString, UNIT ccReturn, HANDLE hwndCallback); 若成功则返回0,否则返回错误码。第一个参数为一串控制字符串,返回信息由系统填入第二个参数,第三个参数指明返回信息的最大长度,若对MCI装置设定了“notify“标志则需要在第四个参数填上返回窗口句柄。,19,mciSendString()采用字符串的方式,使用起来比较简单。例如,打开了一个CD播放机后,可以发送下列常用的命令来控制CD机: play

10、cdaudio fromto 若省略from则从当前磁道开始播放,省略to则播放到结束 pause cdaudio /暂停播放 stop cdaudio /停止播放 resume cdaudio /继续被暂停的播放 status cdaudio number of tracks 查询CD的磁道数。status cdaudio current track 可以查询当前磁道 seek cdaudio to /移动到指定磁道 set cdaudio door open/closed /弹出或缩进CD盘 close cdaudio /关闭设备,20,(2) MciSendCommand()函数 MCI

11、的命令消息接口提供了C语言接口,它速度更快,并且更能符合C/C+程序员的需要。 MCIERROR mciSendCommand(MCIDEVICEID wDeviceID,UINT uMsg,DWORD dwFlags,DWORD dwParam); 若成功则返回0,否则返回错误码。第一个参数指定了设备标识,这个标识会在程序员打开MCI设备时由系统提供。第二个参数为命令消息。第三个参数为命令消息的标志,第四个参数是指向包含一个命令消息的数据结构。,21,【例12.2】编写一个基于对话框的应用程序Mciwav,利用MCI的命令消息接口完成一个简单的WAVE播放器的制作。,22,12.2.3 MC

12、IWnd窗口类,使用MCI要调用低层函数并且要编写大量的代码,这对大多数不熟悉Windows API编程的人是非常困难的。 Visual C+把MCI封装成一个窗口类MCIWnd。这样,在编写多媒体窗体程序时,调用MCIWnd类就可以了。 若在应用程序中使用MCIWnd窗口类,必须在调用MCIWnd函数所在的源文件的前面添加vfw.h的头文件,以及编译时加入vfw32.lib库。,23,1MCIWnd类简介 MCIWnd类支持WAV、MIDI、CD音频以及AVI视频的操作。设置MCIWnd类的风格,可以在窗口中显示对媒体操作的工具条;调用宏,可以对媒体进行相应的操作。 (1) MCIWnd类常

13、用的风格如下表所示。,24,25,(2) 常用类的宏。,26,(3) 成员函数。 MCIWndCreate()是使用MCIWnd类重要的函数。 HWND MCIWndCreate (HWND hwndParent, HINSTANCE hinstance, DWORD dwStyle,LPSTR szFile); 参数说明如下。 hwndParent:父窗口句柄; hinstance:与MCIWnd类相关的当前实例句柄: dwStyle:MCIWnd窗口风格; szFile:多媒体文件名。,27,2MCIWnd类的使用 使用MCIWnd类的步骤如下: 使用MCIWndRegister()注册窗

14、口类,或直接用MCIWndCreate()创建窗口; 取得窗口句柄; 调用成员函数打开设备。由于MCIWnd窗口提供了相应的媒体控制按钮,因而不需要用户编写额外的代码。 作为技巧,用户还应该跟踪MCIWnd窗口的一些消息(如MCIWNDM_ NOTIFYSIZE)来调整MCIWnd窗口。 在stdafx.h中加入头文件vfw.h,在Project Settings中Link选项卡里的Object/library lib里填写vfw32.lib,这样把这个库文件在编译时链接进去。,28,【例12.3】编写一个多文档应用程序Ex_MCI,利用MCIWnd窗口类在多文档应用程序中添加一个多媒体播放器

15、。,29,12.3 ActiveX控件,12.3.1 ActiveX控件简介,ActiveX技术建立在微软的组件对象模型(Compoment Object Model,COM)技术之上,并使用COM的接口和交互模型使ActiveX控件与其容器进行完全无缝的集成。 ActiveX主要由ActiveX容器、ActiveX服务器、ActiveX控件等组成。 ActiveX控件是一组封装在COM对象中的功能模块。,30,1ActiveX控件的属性 属性是可见的、并能被容器应用程序经常修改的,一般指控件的颜色、字体、文本和控件中所用的一些其他元素。属性是ActiveX控件的数据成员,并暴露到容器。属性为

16、包含ActiveX控件的应用程序提供了接口。4种基本的属性类型是:环境(ambient)、扩展(extended)、库存(stock)和定制(custom)。,31,2ActiveX控件的方法 ActiveX控件的方法在使用和目的上与C+类成员函数类似,如改变控件的外观、行为和属性等。它分为两类:库存方法和自定义方法。库存方法由COleControl类实现。自定义方法则是由软件开发人员为某种特定目的而定义的一种方法。,32,3ActiveX控件的事件 事件是控件发送给容器应用程序的通知消息。它们被用于通知容器应用程序某种事件已经发生,然后应用程序可在需要时对该事件采取相应的措施。 从控件中可触发两种类型的事件:库存事件和定制事件。,33,12.3.2 ActiveX控件的使用 要使用ActiveX控件必须先注册,并把它添加到自己的项目中。 1控件的注册 一般来说,一个外来的ActiveX控件要在Windows中正确使用,首先必须将控件文件(*.ocx)复制到硬盘中,然后将其在Wi

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号