我希望能够在 Python 中控制主音量(不是针对应用程序,而是针对当前活动扬声器)。这似乎是一个棘手的话题;我尝试在 C# 中执行此操作,但我什至无法让它在那里工作。有没有办法做到这一点?(Windows 7 x64)
请注意,这个问题之前没有得到回答,因为我的问题是专门关于Python的。此外,VonC 所指的项目不适用于 Windows 7。
最简单的方法是通过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)