PulseAudio를 사용하여 내장 오디오 출력과 HDMI 오디오 출력을 모두 활성화하는 방법은 무엇입니까?

PulseAudio를 사용하여 내장 오디오 출력과 HDMI 오디오 출력을 모두 활성화하는 방법은 무엇입니까?

나는 며칠 동안 이 문제를 검색해 왔고 성공하지 못한 채 제안된 다양한 솔루션을 시도했습니다.

기본적으로 저는 오디오(헤드폰 잭이나 내장 스피커로 출력)와 HDMI가 내장된 노트북을 가지고 있습니다. 저는 KDE를 사용하여 데비안 7.5를 실행하고 있습니다.

이전에는 ALSA만 실행 중이었고 HDMI에서 벨이 울리도록 Skype를 구성할 수 있었지만 통화에는 헤드폰을 사용할 수 있었습니다. Pulse를 사용하여 비슷한 것을 달성하고 싶습니다.

Skype가 여전히 벨소리를 분리하고 PulseAudio로 오디오를 호출하는지 확실하지 않지만 Linux 버전의 Skype는 이벤트에서 임의의 스크립트를 실행할 수 있기 때문에 예를 들어 aplayHDMI 포트에서 무언가를 재생하는 데 사용할 수 있다면 매우 기쁠 것입니다. . 하지만 무엇을 하든 항상 하나의 출력 장치만 표시됩니다(사용할 수만 있음).

aplay -l:

****재생 하드웨어 장치 목록****
카드 0: PCH [HDA Intel PCH], 장치 0: ALC269VB 아날로그 [ALC269VB 아날로그]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0
카드 0: PCH [HDA Intel PCH], 장치 3: HDMI 0 [HDMI 0]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0

aplay -L:

기본
    PulseAudio 사운드 서버를 통한 재생/녹음
시스템 기본값: CARD=PCH
    HDA Intel PCH, ALC269VB 시뮬레이션
    기본 오디오 장치
전면: CARD=PCH,DEV=0
    HDA Intel PCH, ALC269VB 시뮬레이션
    전면 스피커
서라운드 40: 카드 = PCH, DEV = 0
    HDA Intel PCH, ALC269VB 시뮬레이션
    전면 및 후면 스피커로 4.0 서라운드 사운드 출력
서라운드 41: 카드 = PCH, DEV = 0
    HDA Intel PCH, ALC269VB 시뮬레이션
    4.1 서라운드 사운드가 전면, 후면 및 서브우퍼 스피커로 출력됩니다.
서라운드 50: 카드 = PCH, DEV = 0
    HDA Intel PCH, ALC269VB 시뮬레이션
    전면, 중앙, 후면 스피커로 5.0 서라운드 사운드 출력
서라운드 51: 카드 = PCH, DEV = 0
    HDA Intel PCH, ALC269VB 시뮬레이션
    전면, 중앙, 후면 및 서브우퍼 스피커로 5.1 서라운드 사운드 출력
서라운드 71: 카드=PCH, DEV=0
    HDA Intel PCH, ALC269VB 시뮬레이션
    전면, 중앙, 측면, 후면 및 서브우퍼로 7.1 서라운드 사운드 출력
hdmi:카드=PCH,DEV=0
    HDA 인텔 PCH, HDMI 0
    HDMI 오디오 출력

HDMI 장치를 직접 사용하려고 하면 다음 오류가 발생합니다.

$ aplay -D hdmi 경고.wav
WAVE 'alert.wav' 재생: 부호 있는 16비트 Little Endian, 속도 22050Hz, 모노
aplay: set_params:1087: 채널 수를 사용할 수 없습니다.

pavucontrol의 "구성" 탭 아래에 다음 Profile옵션이 포함된 드롭다운 메뉴가 표시됩니다.

아날로그 스테레오 듀플렉스
아날로그 스테레오 출력
아날로그 스테레오(HDMI) 출력 + 아날로그 스테레오 입력
아날로그 스테레오(HDMI) 출력
아날로그 스테레오 입력
떠나다

내가 아는 한, 이 모든 것은 (아마도) 예상대로 작동합니다. HDMI는 오디오 출력을 HDMI 포트로 지정하고 다른 것은 내장 사운드 카드로 보냅니다. 어느 것을 선택하든 "출력 장치" 탭에는 항상 하나의 출력 장치만 표시됩니다.

/etc/pulse/default.pa사용할 내장 장치나 HDMI 장치를 추가해 보았지만 load-module module-alsa-sink device=hw:0,0효과 load-module module-alsa-sink device=hw:0,3가 없거나 pulseaudio에 프로필이 전혀 표시되지 않는 것 같습니다.

답변1

덕분에 성공적으로 구성했습니다.ArchLinux 위키의 지침:

pavucontrol/Configuration에서 하나의 수신기(HDMI)를 설정하고 다른 수신기(아날로그 출력)를 아래에서 지정합니다 default.pa.

load-module module-alsa-sink device=hw:0,0
load-module module-combine-sink sink_name=combined
set-default-sink combined

어쩌면 마지막 두 줄을 놓쳤을까요?

부록:HDMI에 아날로그 출력을 추가하는 것이 가능하지만 그 반대를 원한다면 어떻게 될까요? (Pulse가 "이중화"라고 부르는 아날로그 입력을 유지하고 싶습니다...) 안타깝게도 load-module module-alsa-sink device=hw:0,3아니요아니요Pulse의 "아날로그 스테레오 듀플렉스" 구성에 HDMI 출력을 추가하는 작업을 진행 중입니다. 펄스가 시작되지만 HDMI 출력은 없습니다.

pacmd list-sinks두 경우의 출력을 비교했습니다. 을 추가하면 device=hw:0,3옵션이 포트 없음으로 표시됩니다. pavucontrol에서 HDMI 출력을 선택하면 포트가 생깁니다. 출력 세부정보를 살펴보면서 알아낸 내용은 다음과 같습니다.장치=HDMI:0.

pavucontrol 구성으로 "Analog Stereo Duplex"를 선택하고 다음에 추가하십시오 default.pa.

load-module module-alsa-sink device=hdmi:0
load-module module-combine-sink sink_name=combined
set-default-sink combined

기적적으로 작동합니다. 마이크 입력을 유지하고 pavucontrol/출력 장치에는 아날로그 출력에 대한 모든 옵션이 있습니다.그리고HDMI용.

답변2

PipeWire는 2023년에 버전 1.0에 도달하며 배포판은 점차적으로 PulseAudio를 PipeWire로 대체하고 있습니다. 나는 가지고 있다는 기사를 썼다.PipeWire에는 여러 포트가 동시에 존재합니다.. 간략한 요약은 다음과 같습니다.

  1. 편집하다9999-custom.conf다음 위치에 있는 파일alsa 카드 구성 파일디렉토리 구조.

  2. 이 파일의 예제 주석을 해제하고 필요에 맞게 조정하세요.

     [Profile output:analog-stereo+output:hdmi-stereo+input:analog-stereo]
     description = Multiple ports (custom profile)
     output-mappings = analog-stereo hdmi-stereo
     input-mappings = analog-stereo
    
  3. PipeWire를 다시 시작하십시오.

  4. 배포 및 구성 파일 위치에 따라 배포가 설치된 패키지를 업데이트할 때마다 변경 사항을 덮어쓸 수 있습니다.

이러한 변경으로 인해 HDMI 출력과 아날로그 출력을 동시에 사용할 수 있습니다. 이렇게 하면 다음과 같은 도구를 사용하기 쉽습니다.qpw 다이어그램애플리케이션을 모든 출력으로 즉시 라우팅합니다. 다음을 생성할 수도 있습니다.가상 장치이는 새로운 기본 출력 장치가 되며 오디오를 여러 물리적 장치로 전달합니다.

PipeWire는 매우 유연하며 다양한 가능성과 솔루션을 제공합니다. 이전 PulseAudio 기반 솔루션은 계속 작동해야 하지만,최신 Pipewire 모듈로 마이그레이션.

관련 정보