Я использую 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