3

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

4

1 回答 1

1

搅拌机polldescriptors () 文档说:

返回(文件描述符,事件掩码)的元组,可用于等待带有 select.poll 的混音器上的更改

于 2013-02-11T21:24:01.273 回答