Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows XP-在Python中以编程方式禁用/取消禁用音频_Python_Windows_Winapi_Audio_Pywin32 - Fatal编程技术网

Windows XP-在Python中以编程方式禁用/取消禁用音频

Windows XP-在Python中以编程方式禁用/取消禁用音频,python,windows,winapi,audio,pywin32,Python,Windows,Winapi,Audio,Pywin32,我的机器有两个音频输入:一个用于游戏的麦克风,一个用于吉他的线。当使用其中一个时,另一个必须静音以消除hiss/static,因此我希望编写一个小脚本来切换哪一个静音(点击托盘图标,切换到我的输入设备,静音和取消静音非常不方便) 我想也许我可以用它来做这件事,但我似乎可以专门设置输出量而不是输入量,而且我对win32还不够熟悉,甚至不知道在哪里可以找到更好的信息 有人能给我指出正确的方向吗?免责声明:我无论如何都不是windows编程大师……但这是我最好的猜测 根据: 如何使用公开的Win32函

我的机器有两个音频输入:一个用于游戏的麦克风,一个用于吉他的线。当使用其中一个时,另一个必须静音以消除hiss/static,因此我希望编写一个小脚本来切换哪一个静音(点击托盘图标,切换到我的输入设备,静音和取消静音非常不方便)

我想也许我可以用它来做这件事,但我似乎可以专门设置输出量而不是输入量,而且我对win32还不够熟悉,甚至不知道在哪里可以找到更好的信息

有人能给我指出正确的方向吗?

免责声明:我无论如何都不是windows编程大师……但这是我最好的猜测

根据:

如何使用公开的Win32函数执行xyz?

一般来说,诀窍是不要 将其视为Python/PyWi32问题 是的,但是为了寻找 您的产品的文档或示例 问题,不管是哪种语言。 这通常会给你 执行此操作所需的信息 使用这些 扩展。包括 文档将告诉您 的参数和返回类型 函数,以便您可以轻松确定 “拼写”事物的正确方法 蟒蛇

听起来你想控制“端点设备”音量(即声卡/线路输入)。这是朝那个方向走的路

如果之前的版本不是您想要的,那么我们可以稍微宽泛地介绍一下windows中的音频设备控制

这是一篇博文,作者完成了您在C#中的工作(我知道您指定了python,但您可能能够从代码中提取正确的API调用)


祝你好运!如果你得到了可以工作的代码,我很想看看。

你最好使用
ctypes
-
pywin32
如果你使用的是已经包含的API之一,那就很好了,但是我想你在使用声音API时会运气不佳。与
tgray
提供的C#链接中的示例代码一起,使用
ctypes
winmm.dll
,或者使用
SWIG
包装
winmm.dll
。这可能会更快,因为您不必在
ctypes
中为API调用中使用的类型(如
MIXERCONTROLDETAILS
)构建C结构映射类型。

tgray似乎为您指明了正确的方向,但一旦您找到了正确的Win32 API来处理,您有两个选择:

1) 尝试使用pywin32…但它可能包装您需要的功能,也可能不包装您需要的功能(可能不包装)。因此,您可能只想在需要使用COM来获取所需功能的情况下执行此操作

2) 使用ctypes。一般来说,用ctypes包装任何C功能都非常容易


3) 如果C#示例看起来像您所需要的,那么您应该能够将其翻译成IronPython,而只需付出相当少的努力。可能比使用C API更容易。当然是YMMV。

我也有类似的问题,不知道如何使用Windows API来完成我想要的任务。我最终只是用AutoIt自动化GUI。我认为这将是最快和最简单的解决方案(尽管是一个“黑客”解决方案)。正如我今天早些时候所说,您可以在Python中使用AutoIT。

我试图进入Windows API,但不幸的是发现它无法穿透。我对我的AutoIt解决方案很满意;如果有人感兴趣,脚本在