Ubuntu 및 기타 배포판에는 오디오 출력 장치를 전환하는 그래픽이 있습니다. 동일한 작업을 수행하기 위해 명령줄 도구를 작성해 보았지만 항상 작동하지는 않습니다.
수신기 0으로 전환하기 위해 수행 중인 작업은 다음과 같습니다.
pacmd set-default-sink 0
내 생각엔 이게 다 이루어져야 할 것 같아새로운입력은 수신기 0으로 이동합니다. 그런 다음 pacmd list-sink-inputs
현재 수행 중인 작업을 기반으로 각 기존 입력에 대해 다음을 수행합니다 .
pacmd move-sink-input <input_id> 0
그러나 종종 작동하지 않습니다. 나는 종종 수신기를 전환한 다음 일부 응용 프로그램에서 일부 오디오를 재생했는데 여전히 이전 수신기에 연결되었습니다. 내가 여기서 무엇을 놓치고 있는 걸까요? 이 작업을 어떻게 강력하게 수행할 수 있습니까?
답변1
~에서이 블로그 게시물:
PulseAudio 자체에는 pacmd 및 pactl이라는 두 가지 기본 명령줄 도구가 함께 제공됩니다. 전자는 set-default-sink 명령을 제공하지만 예상한 대로 작동하지 않습니다. 적어도 내 시스템에서는 PulseAudio 데몬이 연결된 모든 응용 프로그램에 대해 지속적인 설정을 유지하는 것으로 나타났습니다. 이는 기본 수신자가 데몬이 아직 확인하지 못한 애플리케이션에만 사용된다는 것을 의미합니다.
즉, 이 블로거는 귀하와 똑같은 문제를 안고 있었습니다.
- 기본 수신기를 전환하면 이전에 사용되지 않은 프로그램에만 영향을 미칩니다
- 기존 입력을 이동하는 프로그램은 사운드 카드의 실제 활동에만 영향을 미칩니다.
- 영구 설정을 반복하고 새 카드를 다시 지정하려면 도구가 필요합니다.
따라서 이 블로거는 paswitch
이 작업을 수행하기 위해 명령줄 도구를 작성했습니다.
여기에서 Git 형식의 소스 코드를 찾을 수 있습니다.
설치하다:
libpulse-dev
Pulseaudio 개발 라이브러리 패키지가 설치되어 있는지 확인하십시오 .gcc
컴파일러와 유틸리티 도 필요합니다make
.git clone https://www.tablix.org/~avian/git/paswitch.git
다운로드 소스 코드를 실행합니다 .cd paswitch
명령으로 생성된 디렉토리로 이동git clone
하여make
.paswitch
오류 없이 완료되면 이제 디렉터리에 이진 파일이 있어야 합니다. 디렉터리 에 복사하세요/usr/local/bin/
.README
사용 방법에 대한 예를 보려면 디렉토리에 있는 파일을 읽으십시오 .
restore_device=false
또 다른 옵션은 다음 module-stream-restore
줄 에 옵션을 추가하여 PulseAudio 데몬에게 애플리케이션의 수신기 설정을 유지하지 않도록 지시하는 것입니다 /etc/pulse/default.pa
.
load-module module-stream-restore restore_device=false
이 작업을 수행하고 PulseAudio를 다시 시작한 후 기본 수신기를 전환하면 모든 새로운 사운드 응용 프로그램이 기본적으로 이를 사용하게 됩니다.
그러나 상황은 사용하는 데스크탑 환경에 따라 다를 수 있습니다. Debian 9에서 지속성을 비활성화하면 KDE가 다른 성가신 동작을 나타내게 되었고 결국 기본 동작으로 돌아갔습니다. 내 기억이 맞다면 KDE 시스템 설정 -> 멀티미디어 -> 오디오 및 비디오 -> 장치 기본 설정 목록에 로그인할 때마다 오디오 장치의 새 복사본이 생성됩니다.