Я искал в Интернете любую ссылку для управления громкостью raspberry pi (b+) с помощью скрипта python. Я придумал эта тема ранее спрашивала, но python-alsaaudio не работает с python 3 или, скажем, в простое thonny python. Поэтому мне нужно знать какой-либо правильный способ изменить объем пи в соответствии с пользовательским вводом.





Другой способ — управлять громкостью с помощью инструмента командной строки. Существует инструмент для командной строки Alsa под названием amixer:
amixer sset Master 50%
Теперь вы можете создать простой скрипт Python, который запускает приведенную выше команду:
import subprocess
# a value between 0 and 100
volume = 50
command = ["amixer", "sset", "Master", "{}%".format(volume)]
subprocess.Popen(command)
Вы можете изменить Master на другие звуковые карты. Вы можете получить список элементов управления:
$ amixer scontrols
Simple mixer control 'Master',0
Simple mixer control 'PCM',0
Simple mixer control 'Line',0
Simple mixer control 'CD',0
Simple mixer control 'Mic',0
Simple mixer control 'Mic Boost (+20dB)',0
Simple mixer control 'Video',0
Simple mixer control 'Phone',0
Simple mixer control 'IEC958',0
Simple mixer control 'Aux',0
Simple mixer control 'Capture',0
Simple mixer control 'Mix',0
Simple mixer control 'Mix Mono',0
Большое спасибо ! Теперь это работает. на самом деле когда я бежал amixer scontrols не было ни Master ни ~PCM~ . Я узнал, что нужно выбрать контроллер из списка, который я получил [Simple mixer control 'Speaker',0 Simple mixer control 'Mic',0 Simple mixer control 'Auto Gain Control',0 ] с помощью приведенной выше команды. Так что в моем случае я использовал Speaker. Спасибо!!
Есть один вопрос! Есть ли способ или команда, чтобы получить текущий объем raspberry pi? Чтобы я мог получить через свой скрипт Python.
amixer get Master напечатает результат, вы можете сделать тот же процесс, чтобы прочитать его с помощью вашего py-скрипта.
Спасибо я понял!!
я попробовал команду выше в терминале, но она выдает сообщение об ошибке
i@raspberrypi:~ $ amixer sset Master 50% amixer: Unable to find simple control 'Master',0 pi@raspberrypi:~ $ amixer sset PCM 50% amixer: Unable to find simple control 'PCM',0 pi@raspberrypi:~ $ amixer sset USB 50% amixer: Unable to find simple control 'USB',0Я также пытался изменить звуковые карты на PCM, но проблема была такой же.