首页 / 知识

关于音频:如何在Windows Vista中模拟/替换/重新启用经典的Sound Mixer控件(或命令)?

2023-04-15 20:44:00

关于音频:如何在Windows Vista中模拟/替换/重新启用经典的Sound Mixer控件(或命令)?

How to emulate/replace/re-enable classical Sound Mixer controls (or commands) in Windows Vista?

我有一个问题(并且已经有一段时间了)-Vista中的新混音器堆栈具有一些新奇的功能,但也重新发明了轮子。此后,许多以前在Windows系统上使用Volume Mixer将不同的浊音输出混合为一个输入的应用程序(例如Wave-out + Line-in-> Stereo Mix)已经停止工作。此行为的主要示例是Shoutcast DSP插件(对于解决方案测试可能很有用)。

如何重新启用XP-mixer控件,或者以某种方式模仿此行为,以便程序(SC DSP)可以正确管理麦克风/线路输入的播放音量以及波形播放的音量?

我的想法是模拟一个挂接到Vista混音器中用于Wave-Out和Line-out的程序(或麦克风扬声器音量-所有回放,显示为单独的可调"程序",以便Vista Mixer可以引用它)并将其"挂钩"到系统中,并以某种模拟将其表示为程序的旧音量混合器控制界面,但是坦率地说,我不知道该怎么做。

需要说明的是:这不是我的PC(它是HP Pavilion笔记本电脑)。该问题似乎主要由于Vista混音器控制单独的程序而不是单独的输入/输出而存在。该硬件完全能够执行使用Windows XP时所需的操作。我很清楚这是一个驱动程序问题,但是该驱动程序只是为Vista通过接口向程序员提供的内容做好了准备。调音台设备(在操作系统中可以看到,但可能会在软件中看到)基于Windows Audio控制的调音台API。

在Vista上使用Google进行搜索,并使用内置播放音量控制功能,以获取有关该问题(以及受此问题影响的大量用户)的更多信息。当然,重新编写适用于WinAMP的Shoutcast Source DSP插件可以解决问题,但这不太可能...


使用音频EndPoint API可以控制Windows Vista混音器中声卡的音量,单个输入/输出电平

这应该允许您调整主音量,音频输入和连接的音频的音量。关于这一点的一个皱纹是,当您枚举端点时,如果声卡中没有插入麦克风,那么将不会枚举任何东西。这意味着您需要更改应用程序以响应"麦克风插入"事件,并适当地通知用户。

另一个选择是浸入Microsoft Core Audio下方并直接访问WaveRT驱动程序。与使用WASAPI / Endpoint API相比,这要做的工作要多得多,但是它将为您提供对声卡输入/输出的最大控制权。


音频驱动程序控制可用的混音器控件,这在很大程度上取决于硬件的功能。

如果Vista驱动程序没有某些控件,则可能是该驱动程序而不是Vista的缺点。

(请告诉我们您正在使用哪个声卡/设备。)

可以编写一个程序来创建自己的混音器控件(这将是虚拟声卡的仅软件驱动程序),但是如果实际的驱动程序使用,该程序将无法影响设备内部的音频路由对此没有任何混音器控件。


如果将您的应用标记为在Windows XP兼容性下运行,则所有旧控件和行为都将返回。


If you mark your app as running in Windows XP compatibility, then all the old controls and behaviors will come back.

的确如此,但是从SP2附带的Vista SP1补丁KB957388开始,并带有一些声卡驱动程序,当应用程序处于XP兼容模式时,旧的混音器API(winmm.dll)功能可能会挂起。特别是,在某些计算机上,mixerGetNumDevs和不太常见的mixerOpen不会返回。

我总共有大约200个Vista用户中有5个Vista用户的报告,这些应用在启动时会挂起我的应用程序,并且我一直跟踪到这些功能挂起。

我想将此报告给Microsoft,但找不到任何地方可以这样做。

我现在所能做的就是在未启用兼容模式的情况下发布软件,但这会失去我的应用程序的功能,并且该软件无法控制线路输入或麦克风混音器。

我没有时间直接使用低级API函数。我依靠高级组件,而我的开发系统(Delphi)找不到新的音频API。

我有兴趣付钱给我写一个DLL !!!
电子邮件ross att stationplaylist dott com


启用命令替换控件

最新内容

相关内容

猜你喜欢