核心音频接口
核心音频 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 及更高版本的核心音频 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 及更高版本的核心音频 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 接口。
Interface | 描述 |
---|---|
IAudioEndpointVolume | 表示对音频终结点设备之间音频流的音量控制。 |
IAudioEndpointVolumeEx |
为设备终结点之间的音频流提供音量控制。 |
IAudioMeterInformation | 表示与音频终结点设备之间的音频流峰值。 |
IAudioEndpointVolumeCallback | 当音频终结点设备的音量水平或静音状态发生变化时提供通知。 |