我想从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()是轮询新混合器设置的唯一方法,还是有一种更简单的方法来刷新现有实例的值?

最佳答案

Mixer.polldescriptors() documentation说:

08-27 03:21