Windows 音频体系结构
本主题提供了 Windows 10/11 音频体系结构的简短摘要。
Windows 10/11 音频堆栈图
此图汇总了 Windows 10/11 音频堆栈的主要元素。
API
顶层 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 端口驱动程序。
- 加载音频处理对象 (APO),这是处理音频信号的 H/W 特定插件。 有关 APO 的详细信息,请参阅 Windows 音频处理对象。
音频服务 (audiosrv.dll)
音频服务:
- 用于设置和控制音频流。
- 为后台音频播放、闪避等实现 Windows 策略。
音频终结点生成器 (audioendpointbuilder.exe)
音频终结点生成器 (audioendpointbuilder.exe):
- 用于发现新的音频设备和创建软件音频终结点。 有关使用的算法的详细信息,请参阅音频终结点生成器算法。
音频驱动程序
音频驱动程序:
- 遵循端口-微型端口模型。 有关详细信息,请参阅 WDM 音频术语 和开发 WaveRT 微型端口驱动程序。
- 允许音频堆栈从多个音频设备呈现和捕获音频,包括:集成扬声器和麦克风、耳机/耳机、USB 设备、蓝牙设备、HDMI 等。
- 端口-微型端口模型与高级 Linux 声音体系结构 ALSA 对应
- 有关示例驱动程序代码的信息,请参阅示例音频驱动程序。
硬件
任何给定设备上存在的音频硬件各不相同,但可能包括:
- 音频编解码器
- DSP (可选)
- 集成扬声器、麦克风等
- 外部设备:USB 音频设备、蓝牙音频设备、HDMI 音频等。
- 除了 APO,还可以在 H/W(例如编解码器或 DSP)中实现信号处理。