上一篇:串行通信与重叠I/O >>
WINDOWS下的低级音频函数介绍
播放数字音频
在使用音频设备之前,必须打开设备驱动程序。为可靠起见,在播放和记录音频之前,要确定系统音频设备的能力。在用完之后必须关闭音频设备。具体流程如下:
1.查询设备数目和能力
使用waveOutGetNumDevs和waveOutGetDevCaps来获取波形输出设备的个数和能力。只有在确定设备存在之后,才可以打开设备、使用设备。
2.打开波形输出设备
使用waveOutOpen为进行重放操作打开特定的波形设备。该函数打开与指定的设备ID相关联的设备,并以给出指定内存句柄的方法返回打开波形设备的句柄。
当有多种波形输出设备时,建议使用WAVE_MAPPER常数作为设备ID,这使waveOutOpen函数会自动挑选最适合播放给定的数据格式的设备。
3.准备音频数据块
在波形重放之前,要准备好音频数据块。将数据块传递给设备驱动程序就实现了重放。使用的函数是waveOutPerpareHeader。在用完数据块之后,必须用waveOutUnPrepareHeader函数来清除对波形数据块的准备。
4.发送音频数据块
在成功打开波形输出设备之后,就可以进行波形重放,使用waveOutWrite函数。在调用该函数后,必须等到设备驱动程序使用完音频数据块之后才可以把该数据块释放掉。
5.管理波形重放
在使用低级音频函数播放音频时,应用程序必须不断地向设备驱动程序提供数据块,直到播放结束。WINDOWS提供两种方法管理波形重放:一是使用窗口消息管理,二是使用低级回调函数管理。另外,通过使用waveOutPause、waveOutRestart和waveOutReset来进行暂停、重新启动和停止播放。
6.关闭波形设备
用完设备之后,必须调用waveOutClose函数关闭波形输出设备,以便其他程序可以使用设备。
记录数字音频
记录数字音频的方法基本同播放过程,不同在于记录期间是不提供诸如暂停和重新开始这样的控制的。使用到的函数包括:waveInGetDevCaps、waveInOpen、waveInPrepareHeader、waveInUnPrepareHeader、waveInAddBuffer、waveInReset、waveInStart、waveInStop、waveInClose等。
下一篇:用键盘钩子在Windows平台捕获键盘动作 >>
相关文章:
- · Linux 下 C++程序的异常处理技巧
- · Linux上的C/C++编译器gcc/egcs详解
- · Linux中BSD套接口开发的基础介绍
- · Kylix之经典十大难题
- · 050913:awk中几个内置变量的man说明,感觉英文记得牢点。
- · bash Shell中函數的應用小結
- · 正则表达式模式匹配
- · 计算网络广播地址的shell
- · Shell基本工作原理
- · 了解系统应用情况 彻底监控Windows运行
- · Windows的文件查找功能应用小技巧
- · USB设备还可以这样来安装进Windows
- · 巧用WinRAR为Win9x登陆系统加密
- · 重装系统如何恢复Win98备份文件
- · 在Win98中关闭光盘自动播放功能
- · 了解windows中Alt键的十大用法
- · 极度瘦身:40M的Windows 98
- · 让98也可拥有XP的开机声音
- · Windows 98全自动克隆安装盘
- · 松打造个性Win98启动画面
- · 用快捷键全面掌控你的Windo…
- · 利用Win98自带的Winipcfg命…
- · 让“状态栏”永驻“资源管理…
- · 在Win98中关闭光盘自动播放…
- · 巧用WinRAR为Win9x登陆系统…
- · 优化Windows启动提升性能
- · Win XP教程-XP高级技巧-添加无线Internet摄像机
- · Win XP教程-XP高级技巧-自动重启问题
- · Win XP教程-XP高级技巧-几个著名的Windows伪优化技巧
- · Win XP教程-XP高级技巧-揪出系统中胡作非为的DLL黑手
- · Win XP教程-XP高级技巧-常见系统文件的丢失与损坏
- · Win XP教程-XP高级技巧-传输流的下一件好事
- · Win XP教程-XP高级技巧-厨房中的Windows XP
- · Win XP教程-XP高级技巧-数字照片难题
- · Win XP教程-XP高级技巧-构建一台家用服务器
- · Win XP教程-XP高级技巧-将一台桌面计算机变成服务器
- · 在WindowsXP以幻灯片方式浏…
- · WindowsXP到底有多安全
