명령줄에서 펄스 오디오 출력 장치를 강력하게 전환하는 방법은 무엇입니까?

명령줄에서 펄스 오디오 출력 장치를 강력하게 전환하는 방법은 무엇입니까?

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-devPulseaudio 개발 라이브러리 패키지가 설치되어 있는지 확인하십시오 . 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 시스템 설정 -> 멀티미디어 -> 오디오 및 비디오 -> 장치 기본 설정 목록에 로그인할 때마다 오디오 장치의 새 복사본이 생성됩니다.

관련 정보