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

关于音频:如何在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


推荐阅读

    linux监控cpu命令?

    linux监控cpu命令?,情况,系统,信息,状态,时间,实时,电脑,工具,命令,百分比,li

    linux密码更改命令?

    linux密码更改命令?,密码,系统,名称,信息,环境,命令,使用者,用户,权限,终端,L

    linux硬盘挂载命令?

    linux硬盘挂载命令?,系统,设备,信息,电脑,情况,状态,管理,数据,工具,命令,lin

    linux命令替换的字符?

    linux命令替换的字符?,命令,数据,系统,商业,字符串,文件,内容,方法,批量,字

    linux命令行大全如何?

    linux命令行大全如何?,地址,命令,基础,工作,管理,单位,数据,标准,目录,文件,l

    linux开启bnc命令?

    linux开启bnc命令?,网络,工作,酒店,电脑,光线,信息,位置,网卡,中心,价格,寝室

    图形化linux命令集?

    图形化linux命令集?,系统,工作,密码,信息,软件,地址,命令,状态,工具,电脑,lin

    linux命令行打开浏览?

    linux命令行打开浏览?,系统,网络,网址,工具,密码,首页,服务,网站,数据,地址,l

    linux使用ssh命令?

    linux使用ssh命令?,服务,系统,软件,在线,认证,地址,命令,协议,虚拟机,主机,ss

    linux禁用rm命令?

    linux禁用rm命令?,系统,命令,文件,名称,档案,工作,不了,环境,文件夹,目录,lin

    linux命令lscf?

    linux命令lscf?,系统,工作,命令,地址,基础,目录,标准,名字,密码,管理,linux系

    linux操作常用命令?

    linux操作常用命令?,工作,系统,地址,信息,命令,目录,管理,标准,基础,工具,lin

    linux关闭串口命令行?

    linux关闭串口命令行?,代码,数据,网络,软件,通信,系统,基础,平台,信息,技术,

    linux查询命令进程?

    linux查询命令进程?,系统,名称,总量,情况,状态,进程,材料,工具,电脑,数据,怎

    linux命令行设置网卡?

    linux命令行设置网卡?,系统,地址,信息,网络,工具,电脑,工作,名称,设备,网卡,l

    linux命令行在哪儿?

    linux命令行在哪儿?,系统,工作,工具,电脑,首页,信息,地址,命令,分行,密码,lin

    linux命令如何杀进程?

    linux命令如何杀进程?,状态,系统,暂停,管理,进程,命令,平台,信息,工具,电脑,L

    linux文件异或命令?

    linux文件异或命令?,数字,系统,工作,管理,命令,数据,网络,文件,第一,单位,基

    linux安装dbe命令?

    linux安装dbe命令?,系统,电脑,通用,数据,环境,变动,在线,业务,信息,网站,LINU

    linux文件复制的命令?

    linux文件复制的命令?,系统,文件,命令,目录,源文件,基本知识,位置,目标,选