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 -L
retorna 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-sources
ou pactl list
para 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