Список всех устройств ALSA

Список всех устройств ALSA

Я использую PulseAudio в своей системе и следовал инструкциям по добавлениюустройство мониторингасогласно вики PulseAudio. Само устройство мониторинга работает и регистрируется/функционирует должным образом в приложениях, таких как Audacity, но я не могу заставить устройство отобразиться через какой-либо из инструментов командной строки. aplay -Lвозвращает примерно тот же список, что и Audacity, но удобно пропускает устройство мониторинга.

Моя конечная цель — проанализировать вывод в приложении Java и в конечном итоге передать его в FFmpeg. Я могу сказать, что устройство существует через аудио API Java, поскольку отображаются 2 общих «порта источника захвата», но они не предоставляют имени для устройства, и цель состоит в том, чтобы пользователь мог выбирать его в довольно дружественной манере.

Есть ли способы заставить устройство мониторинга отображаться в приложении командной строки или через API/библиотеку Java?

Заранее спасибо!

решение1

Используйте команды pacmd list-sourcesили pactl listдля отображения устройств PulseAudio. Чтобы отобразить только имена, можно выполнить grep на его выводе. Это пример изЧасто задаваемые вопросы о PulseAudio

$ LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2

С помощью дополнительного grep для ".monitor" можно получить только устройства-мониторы.

решение2

Короче говоря, похоже, что проблема на уровне alsa, а не на уровне pulseaudio? Если хотите увидеть устройства alsa, попробуйте.

aplay -l

(но aplay -L, о котором вы уже упомянули, похожа).

pulseaudio находится поверх alsa. Поэтому, глядя на pactl, мы получаем еще один слой программного обеспечения... см. troubleshooters.com/linux/sound/sound_troubleshooting.htm. Если alsa не видит звуковое устройство, то и pulseaudio, конечно, не увидит?

решение3

Все предельно просто:

Здесь показаны порты приемников/выходов:

aplay -L

Поскольку «монитор» — это порт источника/входа, вам понадобится следующее:

arecord -L

Обновление: aplay и arecord находятся в пакете 'alsa-utils'. Для установки:

sudo apt install alsa-utils

Связанный контент