Listar todos os dispositivos ALSA

Listar todos os dispositivos ALSA

Estou usando o PulseAudio em meu sistema e segui as instruções para adicionar umdispositivo de monitoramentode acordo com o wiki PulseAudio. O próprio dispositivo monitor funciona e registra/funciona corretamente em aplicativos como o Audacity, mas não consigo fazer com que o dispositivo se mostre por meio de nenhuma ferramenta de linha de comando. aplay -Lretorna aproximadamente a mesma lista do Audacity, mas convenientemente falta o dispositivo monitor.

Meu objetivo final é analisar a saída em um aplicativo Java e, eventualmente, passá-la para o FFmpeg. Sou capaz de dizer que o dispositivo existe por meio das APIs de áudio Java quando duas "portas de origem de captura" genéricas aparecem, mas ele não fornece um nome para o dispositivo, e o objetivo é que ele seja selecionável pelo usuário em um maneira um tanto amigável.

Existe alguma maneira de fazer com que o dispositivo monitor apareça em um aplicativo de linha de comando ou por meio de uma API/biblioteca Java?

Desde já, obrigado!

Responder1

Use os comandos pacmd list-sourcesou pactl listpara mostrar dispositivos PulseAudio. Para mostrar apenas nomes, você pode usar o grep na saída. Este é um exemplo dePerguntas frequentes sobre PulseAudio

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

Com grep adicional em ".monitor" você pode obter apenas dispositivos de monitoramento.

Responder2

Resumindo, parece que o problema está no nível alsa e não no nível pulseaudio? Se você quiser ver os dispositivos alsa, experimente.

aplay -l

(mas aplay -L que você já mencionou é semelhante).

pulseaudio fica em cima de alsa. Portanto, olhar para o pactl traz outra camada de software... veja aqui troubleshooters.com/linux/sound/sound_troubleshooting.htm. Se alsa não consegue ver o dispositivo de som, então certamente o pulseaudio não conseguirá?

Responder3

É brutalmente simples:

Isso mostra os coletores/portas de saída:

aplay -L

Como um 'monitor' é uma porta de origem/entrada, você vai querer isto:

arecord -L

Atualização: aplay e arecord estão no pacote 'alsa-utils'. Para instalar:

sudo apt install alsa-utils

informação relacionada