核心音频接口
核心音频 SDK 的此编程参考包含以下接口:
MMDevice API
Windows 多媒体设备(MMDevice)API 使音频客户端能够发现 音频终结点设备,确定其功能,并为这些设备创建驱动程序实例。头文件 Mmdeviceapi.h 定义 MMDevice API 中的接口。 有关详细信息,请参阅 关于 MMDevice API。
下表列出了适用于 Windows Vista 的核心音频 SDK 提供的 MMDevice 接口。
接口 | 描述 |
---|---|
IMMDevice | 表示音频设备。 |
IMMDeviceCollection | 表示音频设备的集合。 |
IMMDeviceEnumerator | 提供用于枚举音频设备的方法。 |
IMMEndpoint | 表示音频终结点设备。 |
IMMNotificationClient | 当添加或删除音频终结点设备、设备的状态或属性发生更改或分配给设备的默认角色发生更改时,提供通知。 |
WASAPI
Windows 音频会话 API(WASAPI)使客户端应用程序能够管理应用程序和 音频终结点设备之间的音频数据流。 头文件 Audioclient.h 和 Audiopolicy.h 定义 WASAPI 接口。 有关详细信息,请参阅 关于 WASAPI。
下表列出了适用于 Windows Vista 和更高版本的 Core Audio SDK 提供的 WASAPI 接口。
接口 | 描述 |
---|---|
IActivateAudioInterfaceAsyncOperation | 表示激活 WASAPI 接口的异步作,并提供检索激活结果的方法。 从 Windows 8 开始应用。 |
IActivateAudioInterfaceCompletionHandler | 提供一个回调,指示 WASAPI 接口的激活已完成。 从 Windows 8 开始应用。 |
IAudioCaptureClient | 使客户端能够从捕获终结点缓冲区读取输入数据。 |
IAudioClient | 使客户端能够在音频应用程序与音频引擎或音频终结点设备的硬件缓冲区之间创建和初始化音频流。 |
IAudioClock | 使客户端能够监视流中的数据速率和流中的当前位置。 |
IAudioClock2 |
使客户端能够获取当前设备位置。 |
IAudioClockAdjustment |
使客户端能够设置流的采样率。 |
IAudioRenderClient | 使客户端能够将输出数据写入呈现终结点缓冲区。 |
IAudioSessionControl | 使客户端能够配置音频会话的控制参数,并监视会话中的事件。 |
IAudioSessionControl2 |
使客户端能够获取有关音频会话的信息。 |
IAudioSessionManager | 使客户端能够访问跨进程和进程特定的音频会话的会话控件和音量控件。 |
IAudioSessionManager2 |
管理所有子混合,包括子混合的枚举和通知。 它还支持躲避通知。 |
IAudioSessionEnumerator |
使客户端能够枚举音频会话。 |
IAudioStreamVolume | 使客户端能够控制和监视音频流中所有通道的音量级别。 |
IChannelAudioVolume | 使客户端能够控制流所属的音频会话中所有通道的音量级别。 |
ISimpleAudioVolume | 使客户端能够控制音频会话的主音量级别。 |
IAudioSessionEvents | 提供与会话相关的事件的通知,例如卷级别、显示名称和会话状态的更改。 |
IAudioSessionNotification |
在发生会话更改时发送通知。 |
IAudioVolumeDuckNotification |
发送有关挂起的系统躲避更改的通知。 |
DeviceTopology API
DeviceTopology API 为客户端应用程序提供了遍历音频呈现和捕获设备的功能硬件拓扑的功能。 头文件 Devicetopology.h 定义 DeviceTopology API 中的接口。 有关详细信息,请参阅 设备拓扑 和 DeviceTopology API。
下表列出了适用于 Windows Vista 和更高版本的 Core Audio SDK 提供的 DeviceTopology 接口。
接口 | 描述 |
---|---|
IAudioAutoGainControl | 提供对硬件自动增益控制(AGC)的访问。 |
IAudioBass | 提供对硬件低音级控件的访问权限。 |
IAudioChannelConfig | 提供对硬件通道配置控制的访问权限。 |
IAudioInputSelector | 提供对硬件多路复用器控件(输入选择器)的访问。 |
IAudioLoudness | 提供对“响度”补偿控制的访问权限。 |
IAudioMidrange | 提供对硬件中级控件的访问权限。 |
IAudioMute | 提供对硬件静音控件的访问权限。 |
IAudioOutputSelector | 提供对硬件非复数器控件(输出选择器)的访问。 |
IAudioPeakMeter | 提供对硬件峰值计量控件的访问。 |
IAudioTreble | 提供对硬件三级控制的访问权限。 |
IAudioVolumeLevel | 提供对硬件卷控制的访问权限。 |
IConnector | 表示组件之间的连接点。 |
IControlInterface | 表示部件(子单位或连接器)上的控件接口。 |
IDeviceSpecificProperty | 表示连接器或子单元的设备特定属性。 |
IDeviceTopology | 提供对音频设备的拓扑的访问权限。 |
IKsFormatSupport | 提供有关音频设备和系统内存之间软件配置的 I/O 连接(通常是 DMA 通道)支持的音频数据格式的信息。 |
IKsJackDescription | 提供有关在音频适配器上的设备与外部或内部终结点设备(例如麦克风或 CD 播放器)之间提供物理连接的插孔或内部连接器的信息。 |
IKsJackDescription2 |
提供对连接到终结点设备的连接器 KSPROPERTY_JACK_DESCRIPTION2 属性的便捷访问。 |
IKsJackSinkInformation |
提供有关硬件支持的插孔接收器的信息。 |
IPart | 表示设备拓扑的一部分(连接器或子单元)。 |
IPartsList | 表示部件(连接器和子单位)的列表。 |
IPerChannelDbLevel | 表示一个泛型子单元控制接口,该接口提供对音频流或音频流中频率带的音量级别(以分贝为单位)的按通道控制。 |
ISubunit | 表示位于客户端和音频终结点设备之间的数据路径的硬件子单元(例如卷级控件)。 |
IControlChangeNotify | 在部件(连接器或子单位)的状态发生更改时提供通知。 |
EndpointVolume API
EndpointVolume API 使专用客户端能够控制和监视 音频终结点设备的音量级别。 头文件 Endpointvolume.h 定义 EndpointVolume API 中的接口。 有关详细信息,请参阅 EndpointVolume API。
下表列出了适用于 Windows Vista 的核心音频 SDK 提供的 EndpointVolume 接口。
接口 | 说明 |
---|---|
IAudioEndpointVolume | 表示音频流对音频终结点设备或从音频终结点设备进行音量控制。 |
IAudioEndpointVolumeEx |
在音频流中向设备终结点或从设备终结点提供音量控制。 |
IAudioMeterInformation | 表示音频流到音频终结点设备或从音频终结点设备到或传出音频流的峰值计量。 |
IAudioEndpointVolumeCallback | 当音频终结点设备的音量级别或静音状态更改时,提供通知。 |