首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python的pyalsa模块没有显示更新的alsa状态(卷、静音等)。

Python的pyalsa模块没有显示更新的alsa状态(卷、静音等)。
EN

Stack Overflow用户
提问于 2022-02-18 08:05:25
回答 1查看 66关注 0票数 0

我正在使用来自pyalsaalsa网站模块。我可以设置音量,切换开关,但无法获得新的音量后,改变它的外部,例如,朋友。静音状态也是如此(get_switch,如果我没有错的话)。

怎么啦?我应该这样使用pyalsa吗?

代码语言:javascript
复制
from pyalsa import alsamixer
mixer = alsamixer.Mixer()
mixer.attach()
mixer.load()
alsa = alsamixer.Element(mixer, 'Master')

print(alsa.get_volume())  # shows e.g., 15729 (max 65536)
# run shell command `amixer set Master 50%`, the volume actually changes
print(alsa.get_volume())  # still shows 15729
alsa.set_volume_all(30000)  # the volume also changes
print(alsa.get_volume())  # shows 30000

编辑:我发现pyalsaaudio模块也是这样的。

EN

回答 1

Stack Overflow用户

发布于 2022-02-18 16:09:57

pyalsa不会自动处理等待混合器事件,必须使用Mixer.handle_events(...)

代码语言:javascript
复制
# change volume externally, e.g., with amixer command
mixer.handle_events()
alsa.get_volume()  # returns the new value
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71170159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档