1

NAudio 可以用于设置特定应用程序的音量吗? { 在 Windows 7 上 }

我找到了这个线程,指的是问题,建议通过 WASAPI 自行实现所需的解决方案,但我更喜欢更简单的解决方案,最好是使用 NAudio 包装器,如果有的话。

我还发现了这个基于 WASAPI 的解决方案,它(对我来说,超过 32 位 Windows 7 专业版)没有枚举所有音频播放应用程序,因此 - 不适用。

我实际上想要完成的是:我正在使用一个商业应用程序播放一长串的音频文件,各种质量和音频级别。我想对该应用程序应用 AGC(自动增益控制,即音量级别标准化),以至少“模糊”(如果不能完全消除)播放曲目之间音量级别的差异。

作为第一阶段,我可以假设这个应用程序是唯一在系统上产生音频的应用程序,并且只处理 Windows 的主要音频路径样本,但我也不知道如何实现这一点。NAudio 可以干扰音频路径,在音频样本到达扬声器插孔之前修改音频样本(即放大它们)吗?

请注意,简单地更改 Windows 主音量表并不能解决问题,因为它不会反映在 NAudio/WASAPI Loopback 捕获的样本幅度中。

NAudio 将是首选方法,但不是必须的。

4

1 回答 1

3

NAudio 确实为 Windows Core Audio API 的许多部分提供了包装器,但不包括Roman 在您链接到的答案[IAudioSessionEnumerator][1]中提到的那个。这部分 API 似乎是在 Windows 7 中引入的。

所以我担心 NAudio 在这里帮不了你,你需要将 Roman 的代码移植到 C#,这需要你为 IAudioSessionEnumerator 和相关接口(如 IAudioSessionManager 和 IAudioSessionControl)创建互操作包装器。

于 2014-01-03T08:03:59.500 回答