繁体   English   中英

Windows XP-使用Python以编程方式静音/取消静音

[英]Windows XP - mute/unmute audio in programmatically in Python

我的机器有两个音频输入:一个用于游戏的麦克风和一个用于吉他的线路。 使用其中一个时,重要的是将另一个静音,以消除嘶嘶声/静电,因此,我希望编写一个小的脚本来切换哪个已静音(单击托盘图标,切换到我的输入设备,静音是相当不方便的并取消静音)。

我以为我可以用pywin32做到这一点,但是我能找到的 所有东西似乎都是特定于设置输出音量而不是输入,而且我对win32不够熟悉,甚至不知道在哪里寻找更好的信息。

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

免责声明: 无论如何我都不是Windows编程大师...但这是我的最佳猜测

根据pywin32常见问题解答

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

通常,诀窍是根本不认为它是Python / PyWin32问题,而是搜索文档或问题示例,无论使用哪种语言。 通常,这将为您提供使用这些扩展名执行相同操作所需的信息。 随附的文档将告诉您函数的参数和返回类型,以便您可以轻松确定在Python中“拼写”事物的正确方法。

听起来好像您想控制“端点设备”的音量(即,声卡/线路输入)。 这是该方向上的API参考

如果以前的版本不是您想要的, 这里将更广泛地介绍如何在Windows中控制音频设备。

是来自某人的博客文章,该人做了您想用C#进行的工作(我知道您指定了python,但您可能能够从代码中提取正确的API调用)。

祝好运! 而且,如果您确实有可用的代码,那么我很感兴趣。

我有一个类似的问题,无法弄清楚如何使用Windows API来完成我想要的事情。 我最终只是用AutoIt自动化了GUI。 我认为这将是最快,最简单的解决方案(尽管这是一个“ hacky”解决方案)。 正如我今天早些时候回答的那样,您可以在Python中使用AutoIT。

使用ctypes可能会更好-如果您使用的是已经包含的API之一,那么pywin32会很好,但是我认为您对声音API会感到不走运。 tgray提供的C#链接中的示例代码一起,使用ctypeswinmm.dll ,或者使用SWIG包装winmm.dll 这可能会更快,因为您不必为API调用中使用的类型(例如MIXERCONTROLDETAILSctypes构建C结构映射类型。

tgray似乎已为您指明了正确的方向,但是一旦您找到了正确的Win32 API即可使用,则有两种选择:

1)尝试使用pywin32 ...,但是它可能包装或可能不包装您需要的功能(它可能没有)。 因此,如果您需要使用COM来获得所需的功能,则可能只想这样做。

2)使用ctypes。 通常,使用ctypes包装几乎所有C功能都非常容易。

3)如果C#示例看起来像您所需要的,您应该可以轻松地将其转换为IronPython。 比使用C API更容易。 YMMV,当然。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM