[英]Changing Raspberry Pi volume with Python
硬件
设置
电位器在 Arduino 上运行,我通过 USB 串行端口向 Raspberry Pi 发送信号。 代码已完成并可在 Arduino 上运行,我能够获取信号并使用 Pi 上的 python 脚本打印它。
我已经在 Arduino 端重新映射了 0-100 的信号范围,我希望使用这个值来控制我正在创建的音乐盒的树莓派上的音量。
问题
我目前正在使用此处找到的答案作为指南。 但是,当我运行 python 脚本时,我在终端中收到以下错误。
“ amixer:无法找到简单的控件‘Master’,0 ”
但是,当我运行命令 (amixer scontrols) 时,我显示了一个 Master,列出了 0。 见下文
" pi@raspberrypi:~ $ amixer scontrols 简单混音器控制 'Master',0 简单混音器控制 'Capture',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 scontrols
和sudo amixer scontrols
。 如果结果不同,select 来自“sudo ...”的那个在我的树莓派上,我有
Simple mixer control 'Master',0
Simple mixer control 'Capture',0
对于第一个和
Simple mixer control 'Headphone',0
第二个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.