控制特定应用程序的音量级别

时间:2014-01-02 21:00:17

标签: volume naudio wasapi

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

我发现this thread,指的是问题,建议自行实现WASAPI所需的解决方案,但我更喜欢一个更简单的解决方案,最佳 - 使用NAudio包装器,如果有的话

我还发现this WASAPI-based solution,(对我来说,超过32位Windows 7专业版)不会枚举所有音频播放应用程序,因此 - 不适用。

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

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

请注意只是改变Windows主音量表不会起作用,因为它不会反映在NAudio / WASAPI Loopback捕获的样本的幅度上。

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

1 个答案:

答案 0 :(得分:3)

NAudio确实有Windows Core Audio API的许多部分的包装器,但不包括Roman在the answer you linked to中提到的[IAudioSessionEnumerator][1]。似乎这部分API是在Windows 7中引入的。

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