我想从python控制ALSA声卡的调音台。同时,我希望能够从其他可能同时修改声卡的应用程序中获得更改。
我想最简单的方法是使用声卡的混音器界面来设置和查询调音台。
对于alsaaudio
包,这应该相当容易:
import alsaaudio
mixer=alsaaudio.Mixer()
print mixer.getvolume() # prints e.g. '[100L]'
mixer.setvolume(50)
print mixer.getvolume() # prints '[50L]'
不幸的是,如果控件在“引擎盖下”发生变化,则Mixer
的实例不会被更新。
考虑上面的应用程序在运行,但是现在用alsamixergui
到80之类的东西来改变调音台。
print mixer.getvolume() # prints '[50L]'
mixer2=alsaaudio.Mixer()
print mixer2.getvolume() # prints '[80L]'
print mixer.getvolume() # prints '[50L]'
实例化一个新的Mixer()是轮询新混音器设置的唯一方法,还是有一种更简单的方法来刷新现有实例的值?
答案 0 :(得分:0)
Mixer.polldescriptors() documentation说:
返回(文件描述符,事件掩码)的元组,可用于等待 select.poll 的混音器更改。