我如何改变它?
我正在寻找像这样的东西:
SetMasterVolume(0.5) SetAppVolume('FooBar',0.5)
我尝试使用ctypes.windll.winmm,但我找不到有关如何使用它的文档。
提前致谢。
如何使用JScript或VBScript控制Windows系统卷?
Windows核心audioAPI
什么是API使用,知道在Pocket PC 2003环境中使用c + +的音量状态?
用C#设置Windows卷
如何以编程方式控制我的电脑的音量?
控制Windows音量
Windows如何计算卷唯一ID?
检查系统音量是否被静音?
我希望5年后,这对你来说不再是一个问题,但是我只需要做同样的事情。 可以使用PyCaw库。
简单的概念证明,基于PyCaw的例子
from __future__ import print_function from pycaw.pycaw import AudioUtilities,ISimpleAudioVolume def main(): sessions = AudioUtilities.GetAllSessions() for session in sessions: volume = session._ctl.QueryInterface(ISimpleAudioVolume) if session.Process and session.Process.name() == "vlc.exe": print("volume.GetMasterVolume(): %s" % volume.GetMasterVolume()) volume.SetMasterVolume(0.6,None) if __name__ == "__main__": main()
第一个导入子流程import subprocess
然后获取主音量
def get_master_volume(self): proc = subprocess.Popen('/usr/bin/amixer sget Master',shell=True,stdout=subprocess.PIPE) amixer_stdout = proc.communicate()[0].split('n')[4] proc.wait() find_start = amixer_stdout.find('[') + 1 find_end = amixer_stdout.find('%]',find_start) return float(amixer_stdout[find_start:find_end])
并设置主音量
def set_master_volume(self,widget): val = self.volume val = float(int(val)) proc = subprocess.Popen('/usr/bin/amixer sset Master ' + str(val) + '%',stdout=subprocess.PIPE) proc.wait()
所以,而不是编辑我的旧的答案,我添加一个新的职位,让其他谁使用自己使用我的旧代码和任何人不是,使用我的新代码。
def get_master_volume(): proc = subprocess.Popen('/usr/bin/amixer sget Master',find_start) return float(amixer_stdout[find_start:find_end]) def set_master_volume(volume): val = float(int(volume)) proc = subprocess.Popen('/usr/bin/amixer sset Master ' + str(val) + '%',stdout=subprocess.PIPE) proc.wait()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。