用Python更改Raspberry Pi音量



硬件

  • Arduino Uno
  • 电位计
  • 树莓派3
  • 树莓派
  • Hifibery DAC Pro2

设置

电位计在Arduino上运行,我通过USB串行端口将信号发送到树莓派。代码已经完成,正在Arduino上工作,我可以在Pi上使用python脚本获取信号并打印它。

我已经在Arduino一侧重新映射了0-100的信号范围,我希望使用这个值来控制我正在创建的音乐盒的树莓派的音量。

问题

我目前正在使用这里的答案作为指南。然而,当我运行python脚本时,我在终端中收到以下错误。

">amixer:找不到简单控件"Master",0">

但是,当我运行命令(amixer-scontrols)时,我会显示一个Master,列出了0。见下文

">pi@raspberrypi:~$amixer烤饼简单混音器控件"Master",0简单的混音器控制"捕获",0";

为什么脚本看不到硬件,或者我做错了什么?这是我的当前形式的脚本。一旦我能改变音量,我就会开始制作循环,我是python的新手,正在尝试学习一些东西,但我已经坚持了几个星期了。非常感谢您的帮助。

#import serial adapter library and asla audio library
import subprocess
import serial
import alsaaudio
#Variables
ser = serial.Serial('/dev/ttyACM0', 9600)
ser.flush()
volume = ser
command = ["amixer", "sset", "Master", "{}%".format(volume)]
subprocess.Popen(command)

#Imports serial value and prints to monitor
while True:  
read_serial=ser.readline()
print(read_serial)

问题来自"sudo">

如果你在你的shell中尝试amixer sset Master 100%,它会在中工作

但如果你尝试sudo amixer sset Master 100%,你就会得到amixer: Unable to find simple control 'Master',0

我的建议:不要写sudo python volcon.py,而是写python volcon.py来执行你的代码

如果它不起作用,或者您确实需要sudo的权限,您可以使用其他命令。例如amixer cset numid=1 100%

PS:我唯一确定的是amixer sset Master 100%用"sudo"有不同的响应,对于解决方案,你可以尝试我建议的,但我不确定的结果

编辑:

请尝试amixer scontrolssudo amixer scontrols。如果结果不同,请从"sudo…"中选择一个在我的树莓上,我有

Simple mixer control 'Master',0
Simple mixer control 'Capture',0

对于第一个和

Simple mixer control 'Headphone',0

对于第二个

相关内容

  • 没有找到相关文章

最新更新