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