wav文件处理内容摘要:
文件 WAVE声音文件一个最基本的操作就是将文件中的声音数据播放出来,用 Windows提供的 API函数 BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound)可以实现小型 WAV文件的播放,其中参数 lpszSound 为所要播放的声音文件, fuSound为播放声音文件时所用的标志位。 例如实现 文件的异步播放,只要调用函数sndPlaySound(c:\windows\,SND_ASYNC)就可以了,由此可以看到sndPlaySound函数使用是很简单的。 但是当 WAVE文件大于 100K时,这时候系统无法将声音数据一次性的读入内存, sndPlaySound函数就不能进行播放了。 为 了解决这个问题,你的一个选择就是用 MCI方法来操作声音文件了。 在使用 MCI方法之前,首先需要在你开发的项目设置 ProjectSettingLinkObject/library modules中加入。 并在头文件中包括 头文件。 MicroSoft API提供了 MCI( The Media Control Interface)的方法 mciSendCommand()和 mciSendString()来完成 WAVE文件的播放,这里仅介绍 mciSendCommand()函数的使用。 原型: DWORD mciSendCommand( UINT wDeviceID, UINT wMessage, DWORD dwParam1,DWORD dwParam2); 参数: wDeviceID:接受消息的设备 ID; Message: MCI命令消息; wParam1:命令的标志位; wParam2:所使用参数块的指针 返值:调用成功,返回零;否则,返回双字中的低字存放有错误信息。 在使用 MCI播放声音文件时,首先要打开音频设备,为此要定义 MCI_OPEN_PARMS变量 OpenParms,并设置该结构的相应分量: = (LPCSTR) MCI_DEVTYPE_WAVEFORM_AUDIO。 //WAVE 类型 = (LPCSTR) Filename。 //打开的声音文件名; = 0。 //打开的音频设备的 ID mciSendCommand (NULL, MCI_OPEN,MCI_WAIT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT, (DWORD)(LPVOID) amp。 OpenParms)函数调用发送 MCI_OPEN命令后,返回的参数 OpenParms 中成员变量的 wDeviceID 指明打开了哪个设备。 需要关闭音频设备时只要调用 mciSendCommand (m_wDeviceID, MCI_CLOSE, NULL, NULL)就可以了。 播放 WAVE文件时,需要定义 MCI_PLAY_PARMS变量 PlayParms,对该变量进行如下设置: = 0,这是为了指定从什么地方(时间)播放 WAVE 文件,设置好以后,调 用 函 数 mciSendCommand (m_wDeviceID, MCI_PLAY,MCI_FROM, (DWORD)(LPVOID)amp。 PlayParms));就实现了 WAVE声音文件的播放。 另外,调用 mciSendCommand (m_wDeviceID, MCI_PAUSE, 0,(DWORD)(LPVOID)amp。 PlayParms)实现了暂停功能。 调用 mciSendCommand (m_wDeviceID, MCI_STOP, NULL, NULL)实现停止功能等,可以看出,这些不同的功能实现都是依靠参数 Message取不同的值来实现的。 不同的 Message和 dwParam dwParam2的组合还可以实现文件的 跳跃功能。 如下面的代码实现 了跳 转到 WAVE 文 件末 端的 操作 : mciSendCommand (m_wDeviceID, MCI_SEEK, MCI_SEEK_TO_END, NULL)。 DirectSound操作 WAVE文件的方法 MCI虽 然调用简单,功能强大,可以满足声音文件处理的基本需要,但是 MCI也有它的缺点,那就是它一次只能播放一个 WAVE 文件,有时在实际应用中,为了实现混音效果,需要同时播放两个或两个以上的 WAVE文件时,就需要使用微软 DirectX技术中的 DirectSound了,该技术直接操作底层声卡设备,可以实现八个以上 WAV文件的同时播放。 实现 DirectSound 需要以下几个步骤 : DirectSound; 的声音设备优先级别方式 ,一般为 DSSCL_NORMAL; 2. 将 WAV文件读入内 存 ,找到格式块、数据块位置及数据长度; ; ; : 二、编程步骤 启动 Visual C++ 生成一个单文档视图结构的应用程序,将该程序命名为playsound; 在程序的主菜单中添加 MCI Play、。wav文件处理
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
web-harvest相关的代码
let $days := data($freeitem//td[4]) let $travelTools := data($freeitem//td[5]) let $price := data($freeitem//td[6]) return city order{data($order)}/order pathName{data($pathName)}/pathName
wcdma测试与测量解决方案
◆ 便于未来扩展,如 HSUPA ◆ 满足 3GPP和 3GPP2声学测量的目前唯一可用的解决方案 ◆ 针对生产和研发进行了优化,高速测试,卓越的精度以及非凡的灵活性 通用无线通信测试仪 Ramp。 S? CMU300 ◆ 紧凑的基站测试平台 ◆ 在生产和研发中(如老化测试)进行高速测试 ◆ 在研发中实时的层 1(物理层)处理(编码 /解码) ◆ 全面的频谱分析仪和信号发生器