Список всех устройств ALSA
Я использую PulseAudio в своей системе, и я следовал инструкциям по добавлению устройства монитора в соответствии с PulseAudio вики. Само устройство мониторинга работает и должным образом регистрируется / функционирует в приложениях, таких как Audacity, но я не могу заставить устройство отображать себя через любой из инструментов командной строки. aplay -L
возвращает примерно тот же список, что и Audacity, но удобно отсутствует устройство монитора.
Моя конечная цель - проанализировать вывод в приложении Java и в конечном итоге передать его в FFmpeg. Я могу сказать, что устройство существует через аудио API Java, так как отображаются 2 общих "порта источника захвата", но оно не предоставляет имя для устройства, и цель состоит в том, чтобы оно выбиралось пользователем в несколько дружелюбно.
Есть ли какие-либо способы заставить устройство монитора отображаться в приложении командной строки или через API / библиотеку Java?
Заранее спасибо!
3 ответа
Использовать pacmd list-sources
или же pactl list
команды для отображения устройств PulseAudio. Чтобы показать только имена, вы можете grep на его выходе. Это пример из FAQ по PulseAudio
$ LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
С дополнительным grep на ".monitor" вы можете получить только устройства мониторинга.
Короче говоря, похоже, что проблема на уровне alsa, а не на уровне pulseaudio? Если вы хотите увидеть устройства alsa, попробуйте.
aplay -l
(но уже упомянутый aplay -L аналогичен).
PulseAudio находится поверх alsa. Итак, рассмотрение pactl открывает еще один уровень программного обеспечения... см. Здесь Troubleshooters.com/linux/sound/sound_troubleshooting.htm. Если alsa не видит звуковое устройство, то, конечно же, pulseaudio не будет?
Это предельно просто:
Это показывает вам приемники/выходные порты:
aplay -L
Поскольку «монитор» является портом источника/входа, вам понадобится следующее:
arecord -L
Обновление: aplay и arecord находятся в пакете alsa-utils. Установить:
sudo apt install alsa-utils