480 likes | 784 Views
第 10 章 多媒体应用程序设计. 音视频操作是多媒体控制的主要内容。 本章将分别讲述音频和视频两种操作各自的实现过程。. 主要包括以下两个方面: ● 通过 Windows 的组件功能,利用软件提供的音视频播放器为自己的程序轻松实现音视频播放功能; ● 利用比较底层的 Windows API 音视频操作函数。. 本章给出较为详细的实例向读者展示 Windows 对音视频等多媒体操作的基本功能和主要过程,可以加深读者对 Windows 音视频操作的理解,为将来深入了解 Windows 多媒体控制提供基础。. 10.1.
E N D
音视频操作是多媒体控制的主要内容。 本章将分别讲述音频和视频两种操作各自的实现过程。
主要包括以下两个方面: ● 通过Windows的组件功能,利用软件提供的音视频播放器为自己的程序轻松实现音视频播放功能; ● 利用比较底层的Windows API音视频操作函数。
本章给出较为详细的实例向读者展示Windows对音视频等多媒体操作的基本功能和主要过程,可以加深读者对Windows音视频操作的理解,为将来深入了解Windows多媒体控制提供基础。本章给出较为详细的实例向读者展示Windows对音视频等多媒体操作的基本功能和主要过程,可以加深读者对Windows音视频操作的理解,为将来深入了解Windows多媒体控制提供基础。
10.1 10.2 10.3 音频控制 视频控制 小 结
10.1 音 频 控 制 本节讲述Windows下各种不同的音频控制方式,包括利用Windows系统提供的多媒体组件播放音频文件,调用MessageBeep()函数进行声音提示,以及使用Windows API函数进行比较底层的音频控制。
Windows系统提供了各种各样的组件,封装了许多复杂功能的实现。 使用合适的组件,可以减轻程序员的负担。 多媒体处理就是Windows下一个比较复杂的过程,涉及许多设备的控制以及音视频的解码等诸多复杂的操作。
然而,Windows内置的Windows Media Player组件可以极大的简化普通程序播放音视频文件的编程复杂度。 本节将通过例10-1详细讲解Windows Media Player组件的创建步骤和使用方法。 【例10-1】 用Windows Media Player组件播放音频文件,如图10-1所示。
1.Windows Media Player组件的创建 • (1)在对话框模板中添加Windows Media Player组件。
(2)为对话框类添加Windows Media Player控件变量。
图10-4 提示IDE将为工程添加Windows Media Player组件类
图10-5 提示IDE将为工程添加Windows Media Player组件类
2.Windows Media Player组件的使用 创建好Windows Media Player组件后就可以为通过组件提供的方法对音视频文件和设备进行操作。 现在结合例10-1要求实现的功能的代码对Windows Media Player组件的各种基本方法进行介绍。
(1)打开音频文件。 • (2)播放音频文件。 • (3)停止播放音频文件。 • (4)其他操作。
10.1.2 MessageBeep()函数 MessageBeep()函数是Windows提供的高级音频函数之一,主要用来播放系统报警声音。 系统报警声音是由用户在控制面板中的“声音和音频设备 属性”对话框(见图10-6)中定义的,或者在注册表中指定。
MessageBeep()函数的原型如下。 BOOL MessageBeep( UINT uType );
10.1.3 API函数 Windows Media Player组件和MessageBeep()函数都能播放音频文件,但是前者是组件,不能提供较为底层的功能,而后者只能播放有限的几种音频文件,功能有限。
本节将介绍Windows提供的各种音频API函数,包括PlaySound()函数和MCI,并根据示范代码详细讲解这些函数的使用方法。本节将介绍Windows提供的各种音频API函数,包括PlaySound()函数和MCI,并根据示范代码详细讲解这些函数的使用方法。
1.PlaySound()函数 PlaySound()函数用于播放波形文件(WAV文件),其原型如下。 BOOL PlaySound( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound );
2.MCI操作 【例10-2】 音频播放器AudioPlayer。
(1)mciSendCommand()函数 • (2)打开操作 • (3)播放操作 • (4)停止操作 • (5)停止操作 • (6)查询播放状态 • (7)暂停播放 • (8)恢复播放 • (9)设置播放指针
10.2 视 频 控 制 本节讲述多媒体操作的另一个重要组成部分—视频控制。 Windows系统提供了丰富的视频控制函数、接口和组件,一方面程序可以使用系统中带有的视频播放组件进行视频控制,另一方面程序可以调用API自行设计视频播放功能。
本节将分别讲述这两种不同的视频控制方法,并提供了相应的示例作为参考。本节将分别讲述这两种不同的视频控制方法,并提供了相应的示例作为参考。
10.2.1 视频播放器 本节阐述如何使用Windows系统中的视频播放组件进行视频的播放和控制。 组件技术是Windows提供的一个关键技术,依靠此技术可以将其他程序提供的功能轻松地嵌入用户自行开发的程序中。
Windows系统下有丰富的视频播放软件,例如,常用的Windows Media Player媒体播放器和Real Player播放器等。 这些播放器都提供了相应的组件方便用户在程序中嵌入此类播放器。
10.1.1节中详细介绍了如何在程序中嵌入Windows Media Player媒体播放器提供的Windows Media Player组件用于播放音频文件。 该组件不仅支持音频文件,还支持视频文件。
本节同样以Windows Media Player组件为例介绍如何在程序中嵌入视频播放器,简化视频播放的编程复杂度。 对于其他播放组件(如Real Player提供的组件),读者可以参考相应软件提供的开发文档实现对此类组件的嵌入和操作。
1.嵌入Windows Media Player组件 2.加入封装Windows Media Player组件的类 3.控制Windows Media Player组件
(1)打开视频文件 • (2)播放视频文件 • (3)停止播放视频文件 • (4)调整视频播放器的大小
10.2.2 MCIWnd类 本节将讲解如何用Windows API中提供的MCIWnd窗口类完成视频播放功能,其中包括相关函数的参考说明和创建视频播放的步骤。
MCIWnd窗口类是VFW(Video For Windows)提供的视频播放窗口类。 VFW 是微软公司为开发Windows平台下的视频应用程序提供的软件工具包,提供了一系列应用程序编程接口(API),用户可以通过它们很方便地实现视频捕获、视频编辑及视频播放等通用功能,还可利用回调函数开发更复杂的视频应用程序。
它的特点是播放视频时不需要专用的硬件设备,而且应用灵活,可以满足视频应用程序开发的需要。 Windows操作系统自身就携带了VFW,系统安装时,会自动安装VFW的相关组件。
MCIWnd是一个控制多媒体设备(如MIDI、数字视频、VCR以及CD音频设备等)的窗口类。 该类为视频播放创建一个播放窗口,播放窗口用于显示视频图像,而所有的视频操作命令都通过向窗口发送对应的消息完成。
Visual C++也为这些操作的消息的发送提供了以MCIWnd开头的宏,可以在程序中调用这类宏实现打开、播放、停止、暂停以及控制音量等多种视频操作。 下面将通过实例详细阐述使用MCIWnd窗口类的步骤和控制命令的参考。 【例10-3】 视频播放器VideoPlayer。
1.打开视频文件并创建MFCWnd窗口 2.播放视频文件 3.停止播放视频文件 4.暂停播放视频文件 5.恢复播放视频文件 6.获取当前播放模式
7.关闭视频播放 8.销毁MCIWnd窗口 9.MCIWnd播放文件位置控制和文件长度的获取
(1)设置长度和位置的取值。 • (2)获得打开的文件的长度。 • (3)获得当前播放的位置。 • (4)设置当前播放的位置。
10.MCIWnd播放音量的获取和控制 • (1)播放音量的获取。 • (2)播放音量的设置。
小 结 本章讲解了在Windows下如何进行音视频操作,介绍了基本的Windows多媒体功能。 读者学习本章应当掌握如下几个重点和难点内容。
● 运用组件实现音视频控制。 ● MessageBeep()函数、PlaySound函数()和MCI在音频播放中的功能和作用。 ● MCIWnd窗口类在视频播放中的功能和作用。
其中第一项内容中的组件技术是Windows的一个关键技术,用在Windows程序设计的很多方面,读者需要认真学习和领会。其中第一项内容中的组件技术是Windows的一个关键技术,用在Windows程序设计的很多方面,读者需要认真学习和领会。 同时读者也要通过本章的学习掌握基本的音视频操作,为程序添加多媒体功能。