Windows 7 中核心音频 API 的新功能
Windows Vista 中引入了核心音频 API,它提供一组新的用户模式音频组件,客户端应用程序可以使用这些组件来呈现或捕获具有改进的音频功能的音频流。 有关此 API 集的一般概述,请参阅关于 Windows Core 音频 API。
Windows 7 对核心音频 API 进行了改进。 下表总结了核心音频 API 的新功能和改进:
功能 | 说明 |
---|---|
一般改进 | Windows 7 中改进了以下功能:
|
通信设备(新) | 在此版本中,新设备类型已添加到“声音”控制面板:“通信”设备。 此设备主要用于通信,即在计算机上拨打或接听电话。 通信应用程序可以使用核心音频组件来获取对默认通信设备的终结点的引用,并为通信目的呈现音频流。 操作系统将通信设备上打开的流视为通信流。 通信流上的 WASAPI 操作类似于任何其他音频流。 有关详细信息,请参阅使用设备角色。 |
流衰减或音频闪避(新) | 自动闪避或流衰减是 Windows 7 中的一项新功能,适用于 VoIP 和统一通信应用程序。 默认情况下,通过计算机在通信设备上接收通信流(如通话)时,操作系统会降低音频流的强度。 音量选项由用户在“声音”控制面板中设置。 Windows SDK 中添加了新的 API,使应用程序能够替换默认的闪避行为。 有关实现自定义闪避功能的详细信息,请参阅提供自定义闪避行为。 |
流路由(新) | 在 Windows 7 中,改进了核心音频 API,可将音频流从现有设备无缝传输到新的默认音频终结点。 使用核心音频 API(如 Media Foundation、DirectSound 和 WAVE API)的高级音频 API 集实现了流路由功能。 使用这些 API 集播放或捕获流的媒体应用程序使用默认实现,无需修改应用程序。 但是,如果媒体应用程序直接使用 Core Audio API,则应用程序需要提供流路由实现。 为此,应用程序必须处理已添加在默认设备连接或删除时通知 WASAPI 客户端的新事件。 有关此功能的详细信息,请参阅流路由。 |
受保护的用户模式音频 (PUMA)(已改进) | PUMA 已针对 Windows 7 进行了更新以提供以下功能:
|
WAVEFORMATEXTENSIBLE 结构已扩展到 WAVEFORMATEXTENSIBLE_IEC61937结构(新) | 在 Windows 7 中,添加了一个新结构来支持 IEC 61937 传输。 WAVEFORMATEXTENSIBLE_IEC61937 扩展了 WAVEFORMATEXTENSIBLE 结构,以存储两组音频流特征:传输前编码的音频格式以及解码后音频流的特征。 新结构显式指定非 PCM 格式的有效通道数、样本大小和数据速率。 利用此信息,应用程序可以在解压缩和播放非 PCM 流后推断其质量级别。 有关详细信息,请参阅 IEC 61937 传输的表示格式。 |
IAudioClient::Initialize(已改进) | IAudioClient::Initialize 方法已改进,以指示打开音频流时可能发生的特定错误。 新的错误代码如下:
|
IAudioCaptureClient::GetBuffer 和 IAudioRenderClient::GetBuffer(已改进) | 已改进 IAudioCaptureClient::GetBuffer 和 IAudioRenderClient::GetBuffer 方法,以返回指示未检索独占模式下的终结点缓冲区的 AUDCLNT_E_BUFFER_ERROR 错误代码。 有关详细信息,请参阅 IAudioCaptureClient::GetBuffer 和 IAudioRenderClient::GetBuffer 中的“备注”。 |
插孔检测功能(已改进) | Windows 7 中的新接口 IKsJackDescription2 扩展了 IKsJackDescription。 通过使用新接口,音频堆栈或应用程序可以获取其他插孔信息。 这包括插孔的检测功能以及设备的格式是否已动态更改。 |
Windows 示例(新) | 已将新示例添加到 Windows SDK 来演示核心音频 API 的使用。 有关详细信息,请参阅使用核心音频 API 的SDK 示例。 |
主要新接口
以下是 Windows 7 的新接口:
- IAudioClock2
- IAudioClockAdjustment
- IAudioEndpointVolumeEx
- IAudioSessionManager2
- IAudioSessionControl2
- IAudioSessionEnumerator
- IAudioSessionNotification
- IAudioVolumeDuckNotification
- IKsJackDescription2
- IKsJackSinkInformation
相关主题