关于 Windows 核心音频 API

本文档介绍了 Microsoft Windows 系列操作系统的核心音频 API。

Windows Vista 中引入了核心音频 API。 这套新的用户模式音频组件为客户端应用程序提供了更好的音频功能。 这些功能包括:

  • 低延迟、故障复原的音频流式处理。
  • 提高可靠性(许多音频功能已从内核模式转移到用户模式)。
  • 提高安全性(受保护音频内容的处理可在安全、权限较低的流程中进行)。
  • 为单个音频设备分配特定的全系统角色(控制台、多媒体和通信)。
  • 用户直接操作的音频终结点设备(如扬声器、耳机和麦克风)的软件抽象。

Windows 7 对核心音频 API 进行了改进。 有关改进和新增功能的详细信息,请参阅Windows 7 中核心音频 API 的新功能

本文档介绍核心音频 API。 这些 API 是以下更高级别 API 的基础:

  • DirectSound
  • DirectMusic
  • Windows 多媒体 waveXxxmixerXxx 函数
  • 媒体基础

这些更高级别的 API 使用核心音频 API 来共享对音频设备的访问。 Media Foundation 是 Windows Vista 的新功能,而 DirectSound、DirectMusic 以及 waveXxxmixerXxx 函数在 Windows 98、Windows Millennium Edition 和 Windows 2000 及更高版本中均支持。

大多数音频应用程序都与更高级别的 API 通信,而不是直接与核心音频 API 通信。 使用更高级别 API 的应用程序的示例如下:

  • 媒体播放器
  • DVD 播放器
  • 游戏
  • 可播放声音文件的商业应用程序,如 Microsoft Office PowerPoint

通常,这些应用程序与 DirectSound 或 Media Foundation API 通信。

直接与核心音频 API 通信可能不适合许多通用的音频应用。 例如,核心音频 API 要求音频流使用音频设备的本机数据格式。 但是,开发以下类型产品的第三方软件开发商可能需要使用核心音频 API 的特殊功能:

  • 专业音频(“pro audio”)应用程序
  • 实时通信 (RTC) 应用程序
  • 第三方音频 API

“pro audio”或 RTC 应用程序可能需要直接访问核心音频 API 的底层功能,以便通过获得音频硬件的独占访问权限来实现最低延迟。 第三方音频 API 可能需要直接访问核心音频 API 来实现一系列功能,而 Windows 提供的任何单个高级音频 API 可能都不完全支持这些功能。

使用传统音频 API 播放或录制音频的应用程序可能需要传统音频 API 不支持但核心音频 API 支持的其他功能。 在许多情况下,应用程序可以直接通过核心音频 API 来访问这些功能,并与传统音频 API 配合使用。

核心音频 API 包括:

  • 多媒体设备 (MMDevice) API。 客户端使用此 API 来枚举系统中的音频终结点设备。
  • Windows 音频会话 API (WASAPI)。 客户端使用此 API 来创建和管理音频流,并将音频流传输到音频终结点设备。
  • DeviceTopology API。 客户端使用此 API 直接访问拓扑功能(如音量控制和多路复用器),而这些功能位于音频适配器硬件设备内部的数据路径上。
  • EndpointVolume API。 客户端使用此 API 直接访问音频终结点设备上的音量控件。 此 API 主要用于管理独占模式音频流的应用程序。

这些 API 支持用户友好的终结点设备概念,该概念在音频终结点设备中进行了介绍。

Microsoft 不打算将此处所述的核心音频 API 用于早期版本的 Windows,包括 Microsoft Windows Server 2003、Windows XP、Windows Millennium Edition、Windows 2000 和 Windows 98。

本概述包含以下主题。

主题 描述
Windows 7 中核心音频 API 的新功能 总结核心音频 API 的新功能和改进
头文件和系统组件 介绍核心音频 API 的头文件和系统组件。
使用核心音频 API 的SDK 示例 列出 Windows SDK 中使用核心音频 API 的样本。

 

核心音频 API