我遇到了一个问题(并且已经有一段时间了)——Vista 中的新混音器堆栈具有新的很酷的东西,但也重新发明了轮子。许多曾经在 Windows 系统上使用 Volume Mixer 将不同的有声输出混合到一个输入中的应用程序(例如 Wave-out + Line-in --> Stereo Mix)已经停止工作。这种行为的主要例子是 Shoutcast DSP 插件(可用于解决方案测试)。
我如何重新启用 XP 混音器控件,或者以某种方式模拟这种行为,以便程序 (SC DSP) 可以正确管理麦克风/线路输入播放音量以及波形输出播放音量?
我的想法是模拟一个连接到 Vista Mixer 的程序,用于 Wave-Out 和 Line-out(或麦克风扬声器音量——所有播放,显示为单独的可调“程序”,以便 Vista Mixer 可以引用它)并在某种模拟下将其“ Hook ”到系统中,将自己表示为程序的旧音量混音器控制界面,但坦率地说,我不知道如何做到这一点。
澄清一下:这不是我的电脑(它是 HP Pavilion 笔记本电脑)。问题似乎主要是因为 Vista 混音器控制单独的程序,而不是单独的输入/输出。当使用 Windows XP 时,硬件完全有能力执行所需的操作。我很清楚这是一个驱动程序问题,但驱动程序只是为 Vista 通过接口(interface)呈现给程序员的内容做好了准备。混音器设备——如在操作系统中所见,但它可能在软件中看起来——基于用于 Windows 音频控制的混音器 API。
在 Vista 上使用谷歌搜索和线路输入播放音量控制以获取有关该问题的更多信息(以及受其影响的用户数量)。当然,为 WinAMP 重写 Shoutcast Source DSP 插件就可以了,但这不太可能发生……
最佳答案
使用音频 EndPoint API 可以在 Windows Vista 混音器中控制声卡的音量级别。
这应该允许您调整主音量,以及 连接的 音频输入的音量。关于这一点的一个问题是,当您枚举端点时,如果没有麦克风插入您的声卡,则不会枚举任何内容。这意味着您需要更改应用程序以响应“插入麦克风”事件,并适当通知用户。
另一种选择是深入 Microsoft Core Audio 并直接访问 WaveRT 驱动程序。与使用 WASAPI/Endpoint API 相比,这需要做更多的工作,但是您可以最大程度地控制对声卡输入/输出的访问。
关于windows - 如何在 Windows Vista 中模拟/替换/重新启用经典混音器控件(或命令)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/71198/