音频处理的相关技术:
在Windows操作系统上,音频处理技术主要是采用微软提供的相关API:Wave系列API函数、DirectSound、Core Audio。
我们简单的对以上接口从对操作系统版本的支持,是否支持声卡录音等方面加以说明
WaveIn系列API函数
是在32位的Windows上的一种老旧且过时,用来播放数字音讯的应用程序接 口,功能有所局限 ,它无法支持「混和多重音讯流」的功能。主要是用来实现对麦克风输入的采集(使用WaveIn系列API函数)和控制声音的播放(使用后WaveOut系列函数)。
支持XP及之后的Windows系统,支持麦克风输入的采集和控制声音的播放,不支持声卡的采集。
DirectSound
可实现多个声音的混合播放。DirectSound可充分使用声卡的内存资源,同时也提供了3D声效算法,模拟出真实的3D立体声。基于directx框架,directx 10之就没有了对directsound的支持,已经将directsound封装到directshow里面去了
支持XP及之后的Windows系统,支持麦克风,声卡的采集, 控制声音播放。
Core Audio
Windows Vista、Windows 7、Windows server 2008等系统音频系统相比之前的系统有很大的变化,产生了一套新的底层API即Core Audio APIs。该低层API为高层API( 如Media Foundation(将要取代DirectShow等高层API)等 )提供服务。相比之前版本的API有如下优势:
1. 具有低延时、故障恢复能力的音频流。
2. 提高可靠性 ( 将很多音频函数从核心态移到了用户态 )
3. 提高了安全性 (在安全的,低优先级别的线程处理被保护的音频内容)
4. 为单独的音频设备分配了特定的系统级别的规则 (console, multimedia, communications) 。
5. 用户可以直接操作相应音频终端设备(Audio Endpoint Devices 如:扬声器、耳机、麦克风、CD播放器)的软件抽象。
Core Audio APIs的组成:
1. Multimedia Device (MMDevice) API 该API用于枚举系统中的音频终端设备(Audio Endpoint Devices)。告诉音频客户端程序有哪些音频终端设备以及它们的性能,并且为这些设备创建驱动实例(driver instances)。是最基本的Core Audio API,为其他三个API提供服务。
2. EndpointVolume API 使客户端程序能够操作音频终端设备。
3. Windows Audio Session API (WASAPI) 使客户端程序能够管理介于程序和音频终端设备之间的音频数据。
4. DeviceTopology API 客户端程序使用这个API可直接沿着音频适配器(audio adapters)的硬件设备里的数据通道进入布局特征。是最底层的音频API,可以通过适配器设备(adapter devices)的布局来查看和管理设备中的音频控制。下图为DeviceTopology API的作用范围
支持Vista及之后的Windows系统,支持麦克风,声卡输出的采集, 控制声音播放。