내 시스템에서 PulseAudio를 사용하고 있으며 추가 지침을 따랐습니다.모니터 장치PulseAudio 위키에 따르면. 모니터 장치 자체는 Audacity와 같은 앱에서 제대로 작동하고 등록/기능하지만 명령줄 도구를 통해 장치가 표시되도록 할 수는 없습니다. aplay -L
Audacity와 거의 동일한 목록을 반환하지만 편리하게도 모니터 장치가 없습니다.
내 최종 목표는 Java 앱의 출력을 구문 분석하고 결국 FFmpeg에 전달하는 것입니다. 2개의 일반 "캡처 소스 포트"가 표시되므로 Java 오디오 API를 통해 장치가 존재한다는 것을 알 수 있지만 장치 이름은 제공하지 않으며 목표는 장치를 사용자가 선택할 수 있도록 하는 것입니다. 다소 친근한 태도.
명령줄 앱이나 Java API/라이브러리를 통해 모니터 장치를 표시할 수 있는 방법이 있습니까?
미리 감사드립니다!
답변1
PulseAudio 장치를 표시하려면 pacmd list-sources
또는 명령을 사용하십시오 . pactl list
이름만 표시하려면 출력을 grep하면 됩니다. 이것은 다음의 예입니다.펄스오디오 FAQ
$ LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
".monitor"에 대한 추가 grep을 사용하면 모니터 장치만 얻을 수 있습니다.
답변2
즉, 문제는 펄스오디오 수준이 아닌 alsa 수준에서 발생한 것 같습니다. 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