Skip to content

SPW 音频引擎

音频接口

DirectX (DirectSound)

在 Windows 10/11 系统上,此接口的音频流将重定向至下述的 WASAPI 共享模式。它仅作为备用兼容性选项提供。

Windows 音频会话 API (WASAPI)

WASAPI 是 Windows 系统推荐的高性能音频接口,提供共享与独占两种工作模式。

WASAPI 工作模式详解

共享模式 (Shared Mode)

在共享模式下,音频流由 Windows 系统音频引擎统一管理和混合。

  • 特点: 所有应用的音频可以同时播放。音频数据会经过系统混音器处理。
  • 采样率转换: 如果播放的音频采样率与系统设置的输出采样率不一致,系统将执行采样率转换(SRC)。

独占模式 (Exclusive Mode)

在独占模式下,应用可直接控制音频硬件设备,绕过 Windows 系统混音器。

  • 优点: 可获得更低的音频延迟,并避免 Windows 系统层面的混音和音频增强处理。
  • 限制: 启用后,其他应用的音频将无法通过该硬件设备播放。

关于采样率转换 (SRC)

采样率转换(Sample Rate Conversion, SRC)是指将音频数据的采样率从一个频率变换到另一个频率的过程(例如,从 44.1 kHz 转换为 48 kHz)。

  • SRC 的发生位置: SRC 可能在软件内部(应用层面)发生,也可能在 Windows 系统层面发生。
  • “避免 SRC”的含义: 此说法通常指避免由 Windows 系统 执行的 SRC。在共享模式下,只要音频文件的采样率与系统输出设置一致,即可避免系统层面的 SRC。在独占模式下,由于绕过了系统混音器,自然也避免了系统 SRC。
  • 独占模式与 SRC 的关系: 启用独占模式不等于零 SRC。如果软件输出的采样率与原始音频文件不一致,SRC 仍然会在软件内部发生。实现真正的零转换,需要软件输出与硬件接收的采样率精确匹配。

SPW 的播放逻辑

为实现流畅的播放体验,SPW 在独占模式下采用了特定的处理流程: SPW 会读取系统音频设置中的首选采样率,并以此采样率锁定硬件。所有音频文件,无论原始采样率为何,都会被高质量地实时转换到该指定采样率再进行输出。

此方法具有以下优势:

  1. 实现无间断播放: 由于输出采样率固定,切换不同采样率的歌曲时无需重新初始化硬件,避免了播放中断。
  2. 尊重通用设置: 输出采样率遵循系统的主要音频设置。当播放的音频文件采样率恰好与该设置相同时,便不会发生任何采样率转换。

注:现代 Windows 系统与 SPW 内置的 SRC 算法都具备极高的品质,其转换过程在听感上接近无损。关于 Android 平台,其音频独占模式的底层逻辑与 Windows 类似,但硬件访问的实现方式更为复杂。

音频设置建议

采样率选择

对于音乐聆听场景,通常无需追求超高的采样率。建议设为 48 kHz,此设置能很好地匹配多数主流音频文件,减少不必要的转换。

独占模式的使用

  • 常规聆听: 不建议启用。共享模式已能提供出色的音质,且不影响其他应用正常发声。
  • 专业或低延迟场景: 在对延迟有极高要求的场景(如 K 歌或专业监听),可启用独占模式以获得最低的延迟和更纯净的信号通路。

Google/Android 是 Google LLC 的注册商标,Salt Player 和糖醋音乐均是寻浔科技(上海)有限公司在中华人民共和国的注册商标