Pulseaudio 루프백 언로드 오디오 출력 장치


12

펄스 오디오 루프백 출력을 언로드하는 방법을 찾으려고합니다. 스트리밍을 위해 마이크와 시스템 오디오를 캡처하는 루프백 믹스를 만들기 위해 pulseaudio를 사용하고 있습니다. 이 코드가있는 스크립트를 시작할 때마다 :

pactl load-module module-null-sink sink_name=mix 
pactl load-module module-loopback sink=mix
pactl load-module module-loopback sink=mix

avconv ...

pactl unload-module module-loopback

닫은 후에 두 개의 출력 장치를 남겨 둡니다. unload-module 명령이 레코딩 명령을 제거하지만 출력에 대한 명령을 찾을 수 없습니다.

답변:


17

모듈을 언로드하는 적절한 방법

Pulse Audio에로드 된 모듈 언로드는로드시 제공되는 모듈의 색인 번호로 수행됩니다.

pactl load-module module-null-sink sink_name=test
24

위의 예제에서 Pulseaudio 서버는 모듈을 index id로로드했습니다 24. 이 모듈은 다음 명령으로 언로드 할 수 있습니다.

pactl unload-module 24

스크립트는의 출력을 구문 분석해야합니다 pactl.

모듈 번호를 모르는 경우 번호와 모듈 이름을 표시하는 다음 명령을 실행할 수 있습니다.

pactl list short modules

최신 버전은 이름으로 언로드를 허용합니다.

pactl unload-module <name>

빠르고 더러운 방법

pulseaudio가 auto-spawning demon (기본 행동이어야 함)으로 설정된 경우 PulseAudio 서버를 재설정하여 로그인 한 후로드 된 모든 모듈을 신속하게 언로드 default.pa하여 다음을 실행하여 정의 된 기본 모듈을로드 할 수 있습니다 .

pulseaudio -k

그러면 스크립트에서 모든 모듈이 효과적으로 언로드되고 출력을위한 기본 싱크가로드됩니다.


모든 애플리케이션이 스트림을 끊어 버릴 수있는 것은 아닙니다.
Aurelia

싱크 이름으로 모듈 번호를 가져옵니다 : MODULE_NUMBER=$(pacmd list-sinks | grep -E "^\s*name:|^\s*module:" | grep -A 1 -E "^\s*name: <MY-SINK-NAME>" | grep -oP "module: \K[0-9]+")어디 MY-SINK-NAME그것이 말하는 것입니다. < >코드를 유지하십시오 !
KrisWebDev

1
@KrisWebDev : 감사합니다.보다 일반적인 방법으로 모듈 인덱스를 얻는 방법에 대한 줄을 추가했습니다.
Takkat

pactl list short modules | grep "sink_name=MY-SINK-NAME" | cut -f1 | xargs -L1 pactl unload-module좋습니다. 그러면 다음과 같이됩니다 .. MY-SINK-NAME이름이 지정된 모든 모듈을 삭제하는 이점이 있습니다 (싱크 이름은 고유하지 않음).
KrisWebDev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.