Python:更改Windows 7主卷

时间:2013-08-07 19:45:18

标签: python windows audio

我希望能够在Python中控制主卷(不适用于应用程序,但适用于当前活动扬声器)。这似乎是一个棘手的话题;我试过在C#中做到这一点,但我甚至无法在那里工作。有没有办法实现这个目标? (Windows 7 x64)

请注意,此问题之前尚未得到解答,因为我的问题主要是关于 Python 。此外,VonC项目指的是在Windows 7上无法运行。

1 个答案:

答案 0 :(得分: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)