多媒体音频.ppt
《多媒体音频.ppt》由会员分享,可在线阅读,更多相关《多媒体音频.ppt(14页珍藏版)》请在冰豆网上搜索。
![多媒体音频.ppt](https://file1.bdocx.com/fileroot1/2022-10/7/3c3e6163-5f36-4be9-95c9-b6693c235a50/3c3e6163-5f36-4be9-95c9-b6693c235a501.gif)
多媒体音频,多媒体音频处理技术不断的发展,并得到广泛应用。
例如:
视频图像的配音,静态图像的解说,可视电话、电视会议的语音,游戏中的音响效果等等。
本章将介绍如何在Windows应用程序中实现音响效果,同时还将说明如何使用多媒体接口MCI来播放各种多媒体文件。
在多媒体中,存储声音信息的文件格式主要有:
WAV文件、MIDI文件、VOC文件、MP3文件等。
我们最常见的是WAV文件和MP3文件两种。
因此我们主要介绍WAV文件和MP3文件的播放。
8.1加载应用程序Wave资源,如果程序中需要播放一些较小的wav文件,可以将wav文件加载为应用程序的资源,这样,磁盘中就不需要保留wav文件了,程序中可以直接使用wav资源文件就可以了。
当然,这么做会增加应用程序的大小,但是,对于较小的wav文件,采用这种方式还是合理的。
为了播放wav资源,需要使用系统提供的PlaySound函数,该函数不仅可以播放wav资源,还可以播放wav文件。
PlaySound,语法格式如下:
BOOLPlaySound(LPCSTRpszSound,HMODULEhmod,DWORDfdwSound);参数说明:
pszSound:
表示播放声音的字符串,可以是表示资源的字符串,也可以是表示wav文件的字符串,其最大长度为256个字符,包括终止符。
hmod:
表示包含wav资源的可执行文件句柄。
fdwSound:
表示声音的播放标记,例8_1向应用程序中加载声音并播放加载的声音,创建一个单文档/视图结构的应用程序,视图基类为CformView,工程名称为“LoadRes”在工作区的资源视图标签页(ResourceView)中鼠标右键单击根节点,在弹出的快捷菜单中选择“Import”菜单项,导入一个“wav”文件引用Mmsystem.h头文件和Winmm.lib库文件(在CLoadResView.cpp中),在视图窗口中添加一个按钮,处理按钮的单击事件。
voidCLoadResView:
OnDemoWave()PlaySound(MAKEINTRESOURCE(IDR_BUTTONWAVE),AfxGetResourceHandle(),SND_ASYNC|SND_RESOURCE|SND_NODEFAULT);/播放声音资源5)运行程序,单击按钮,将播放声音资源。
提示:
我们在设计应用程序时,如果资源文件比较大,不建议将资源文件加载到可执行文件中,这样会导致应用程序变得非常庞大。
8.2播放Wav文件,虽然可以使用PlaySound函数可以播放wav文件,但是该函数有一个缺点,就是音频文件必须完全载入物理内存,如果音频文件较大,则不适合使用PlaySound函数。
此时,可以使用mciSendCommand函数来取代PlaySound函数实现wav文件的播放。
mciSendCommand函数,语法如下:
MCIERRORmciSendCommand(MCIDEVICEIDIDDevice,UINTuMsg,DWORDfdwCommand,DWORD_PTRdwParam);参数说明:
IDDevice:
表示接收命令消息的MCI设备标识符。
uMsg:
表示命令消息,,【例8_2】播放wav文件,1)创建一个单文档/视图结构的应用程序,视图基类为CFormView,工程名称为“PlayWave”。
2)引用Mmsystem.h头文件和Winmm.lib库文件。
#includeMmsystem.h/应用头文件#pragmacomment(lib,“Winmm.lib”)/引用库文提示:
为了在程序中使用mciSendCommand函数,需要进行步骤
(2)操作,即引用Mmsystem.h头文件,链接Winmm.lib库文件。
3)定义一个CPlayWave类,用于打开波形设备、播放wav文件、关闭波形设备。
4)向视图类中添加一个CPlayWave成员。
CPlayWavewave;5)向视图类中添加一个按钮,处理按钮的单击事件。
/定义一个CPlayWave成员voidCPlayWaveView:
OnBtPlay()wave.Stop();/停止播放wave.Play(m_hWnd,WindowsXP登录音.wav);/开始播放wav文件,8.3设计简单音频播放器,【例8_3】如何利用mciSendCommand函数设计一个音频播放器。
具体步骤如下:
1)创建一个基于对话框的应用程序,工程名称为“AudioMediaPlayer”。
2)设计对话框资源如图8_3所示。
3)引用Mmsystem.h头文件和Winmm.lib库文件。
#includeMmsystem.h/应用头文件#pragmacomment(lib,Winmm.lib)/引用库文件,4)定义一个CPlayWave类,具体代码播放wav文件的步骤3。
5)处理“添加”按钮的单击事件,添加音频文件到列表中。
6)向对话框类中添加CPlayWave类型成员wave。
CPlayWavewave;7)处理列表框的双击事件,播放当前选择的歌曲。
9.2使用控件播放AVI文件,avi全称AudioVideoInterleaved,即音频视频交错文件,是微软公司开发的一种符合RIFF文件规范的数字音频与视频文件格式。
avi文件是最常见的音频视频文件格式之一,下面将介绍如何播放avi文件。
播放avi文件最简单的方法是使用微软公司提供的多媒体控件。
下面通过一个示例来介绍如何使用多媒体控件播放avi文件。
例9-2使用多媒体控件播放avi文件,1)创建一个MFC基于对话框的工程,工程名称为“PlayAvi”。
2)在对话框中鼠标右键单击,在弹出快捷菜单中选择“InsertActiveXControl”菜单项,打开“InsertActiveXControl”窗口,如图9_4所示。
3)在“InsertActiveXControl”窗口中选择“MicrosoftMultimediaControl”控件,单击“OK”按钮将其添加到对话框中。
4)利用类向导窗口将新添加的控件命名为“m_Avi”。
5)向对话框中添加一个按钮,处理按钮的单击事件。