Я пытаюсь написать сценарий, который автоматически изменяет уровни воспроизведения / записи звука на основе подключенного устройства.
Я использую звук MAYA44 USB + с 4 входами / выходами.
Благодаря аналогичному вопросу: https://askubuntu.com/questions/97936/terminal-command-to-set-audio-volume
Я научился использовать следующую команду:
amixer -c 2 sset Line,1 50%
Проблема заключается в том, что похоже, что элемент управления захватом имеет то же имя, что и элемент управления воспроизведением: Линия
дела
amixer -c 2 sset Line 50%
Изменяет значения элементов управления BOTH.
Как упоминалось выше, я пишу сценарий, чтобы сделать это автоматически, поэтому я не хочу вручную переходить в alsamixer и делать это вручную.
Есть ли способ переименовать элементы управления, чтобы не было столкновений с именами? В противном случае, есть ли какая-то боль в суффиксе или префиксе, которую я могу добавить к значению «Линия», чтобы указать, что я хочу повлиять на устройство CAPTURE? Будет ли использовать импульсный звук каким-то образом другим вариантом?
В принципе, как я могу изменить значения управления захватом, не влияя на значения воспроизведения?
Заранее спасибо!
Я задал этот же вопрос здесь: https://raspberrypi.stackexchange.com/questions/50596/how-to-change-audio-levels-of-sound-card-with-same-control-names
и получил ответ от CL.
Используйте
amixer -c2 controls
чтобыamixer -c2 controls
низкого уровня.Затем вы можете использовать
amixer -c2 cset ..
для выбора определенных элементов управления по их уникальному идентификационному номеру.
Выполнение команды на моем устройстве:
>amixer -c 2 controls numid=7,iface=MIXER,name='Master Playback Switch' numid=8,iface=MIXER,name='Master Playback Volume' numid=3,iface=MIXER,name='Line Playback Switch' numid=5,iface=MIXER,name='Line Playback Switch',index=1 numid=4,iface=MIXER,name='Line Playback Volume' numid=6,iface=MIXER,name='Line Playback Volume',index=1 numid=9,iface=MIXER,name='Line Capture Switch' numid=10,iface=MIXER,name='Line Capture Volume' numid=2,iface=PCM,name='Capture Channel Map' numid=1,iface=PCM,name='Playback Channel Map'
Я изначально пробовал это, но я не мог заставить его работать. Лишь однажды я возился с ним еще немного, я понял, что идентификатор на самом деле «numid = 10», а не просто целое число 10 .