5

我希望能够在 Python 中控制主音量(不是针对应用程序,而是针对当前活动扬声器)。这似乎是一个棘手的话题;我尝试在 C# 中执行此操作,但我什至无法让它在那里工作。有没有办法做到这一点?(Windows 7 x64)

请注意,这个问题之前没有得到回答,因为我的问题是专门关于Python的。此外,VonC 所指的项目不适用于 Windows 7。

4

1 回答 1

4

最简单的方法是通过ISimpleAudioVolume.

如果您正在使用pywin32项目中的 Win32 COM 包装器,那么在 Python 中应该很容易访问它。

正如文档所解释的,有多种方法可以获取对ISimpleAudioVolume. 您需要获得一个跨进程会话,方法就是这样sndvol.exe做。有关详细信息,请参阅WASAPI的顶级文档。

伪代码将如下所示:

mmde = CoCreateInstance(CLSID_MMDeviceEnumerator, None, 
                        CLSCTX_ALL, IID_IMMDeviceEnumerator)
mmd = mmde.GetDefaultAudioEndpoint(eRender, eMultimedia)
mgr = mmd.Activate(IID_IAudioSessionManager)
sav = mgr.GetSimpleAudioVolume(None, True)
sav.SetMasterVolume(0.5)
于 2013-08-07T19:59:37.390 回答