本主题提供了 Windows 10/11 音频体系结构的高级摘要。
Windows 10/11 音频堆栈图
此图汇总了 Windows 10/11 音频堆栈的主要元素。
应用程序接口
顶级 API
顶级 API 用于应用程序开发。 这些 API 目前正在使用并得到支持。
- XAML MediaElement 类(C#、VB、C++)
- HTML 音频对象 和 视频对象<标记> (网站和 Windows Web 应用使用)
- Windows.Media.Capture 命名空间 (C#、VB、C++)
- Microsoft媒体基金会 (C++)
这些较旧的 API 已弃用。
低级别 API
对于音频流式处理,建议使用这些较低级别的 API。
建议使用此较低级别的 API 进行枚举。
对于 Windows 应用程序,不建议使用这些 API。
- 关于 MMDevice API (替换为 Windows.Devices.Enumeration)
- DeviceTopology API
- EndpointVolume API
音频引擎
音频引擎由两个相关组件(音频设备图(audiodg.exe)组成,它加载音频引擎(audioeng.dll)。
音频引擎:
- 混合和处理音频流。 有关音频引擎如何使用缓冲区传输音频的详细信息,请参阅 了解 WaveRT 端口驱动程序。
- 加载音频处理对象(APOs),这是处理音频信号的 H/W 特定插件。 有关 APOS 的详细信息,请参阅 Windows 音频处理对象。
音频服务(audiosrv.dll)
音频服务:
- 用于设置和控制音频流。
- 为后台音频播放、躲避等实现 Windows 策略。
音频终结点生成器 (audioendpointbuilder.exe)
音频终结点生成器(audioendpointbuilder.exe):
- 用于发现新的音频设备并创建软件音频终结点。 有关使用的算法的详细信息,请参阅 音频终结点生成器算法。
音频驱动程序
音频驱动程序:
- 遵循端口微型端口模型。 有关详细信息,请参阅 WDM 音频术语 和 开发 WaveRT 微型端口驱动程序。
- 允许音频堆栈从多个音频设备呈现和捕获音频,包括:集成扬声器和麦克风、耳机/耳机、USB 设备、蓝牙设备、HDMI 等。
- 端口-微型端口模型对应于高级 Linux 音频架构 ALSA
- 有关示例驱动程序代码的信息,请参阅 示例音频驱动程序。
硬件
任何给定设备上存在的音频硬件各不相同,但可以包括:
- 音频编解码器
- DSP (可选)
- 集成扬声器、麦克风等
- 外部设备:USB 音频设备、蓝牙音频设备、HDMI 音频等。
- 还可以在 H/W(例如编解码器或 DSP)中实现信号处理,而不是除 AAPI 外实现。