클러지 없이 PulseAudio를 통해 사운드 카드의 추가 채널에 어떻게 액세스할 수 있습니까?

클러지 없이 PulseAudio를 통해 사운드 카드의 추가 채널에 어떻게 액세스할 수 있습니까?

펄스오디오 FAQ채널 맵을 사용하여 ALSA 싱크 모듈을 명시적으로 로드하는 방법을 보여줍니다. 이는 작동하지만 장치 자동 감지 모듈을 비활성화하는 작업도 포함되는데, 이를 원하지 않습니다.

"사운드" 설정에는 PulseAudio가 해당 장치에 사용하는 채널 맵을 구성하는 것으로 나타나는 각 출력 장치에 대한 "모드" 옵션이 있습니다. "아날로그 스테레오 출력" 및 "아날로그 서라운드 5.1 출력"과 같은 옵션이 있습니다. 대부분의 경우 정말 잘 작동하는 기본 구성을 위반하지 않는 것이 목표라면 이 방법이 좋은 것 같습니다.

문제는 내 스피커가 실제로는 스테레오지만 어떻게든 사용하고 싶은 출력이 6개 더 있다는 것입니다. 추가 싱크로 노출될 수 있다고 생각합니다. 또는 이러한 추가 채널을 "aux0, aux1, ..."으로 노출할 수 있으면 다음을 사용할 수 있습니다.모듈 다시 매핑 싱크추가 싱크로 표시되도록 합니다.

또한 8개의 아날로그 입력과 2개의 디지털 입력이 있는데 "모드" 설정이 없어도 이 입력이 모두 노출되는 것 같습니다.

그래서 질문은: 이러한 "모드"는 어디에 구성되어 있습니까? 아니면 이 문제에 대한 다른 좋은 해결책이 있습니까?

답변1

여기의 예가 나에게 도움이 되었습니다.

https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output

나는 다음과 같이 끝났습니다 ~/.config/pulse/default.pa.

# http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3
# https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output
# remix=no is required, otherwise it will turn 2-channel sound into 4-channel sound and send it to all master channels
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right sink_properties=device.description=Headphones
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right   channel_map=front-left,front-right sink_properties=device.description=Speakers

# sending output to this goes to both
# replacing "0" with "alsa_output.pci-0000_00_1b.0.analog-surround-40" might work, but this also does
update-sink-proplist 0 device.description="Both"

# this renames the virtual streams, which show up in KMix.  It's handy, since KMix can't show more than one sink for master volume in the popup
update-sink-input-proplist 0 media.name="Headphones"
update-sink-input-proplist 1 media.name="Speakers"

필요에 따라 장치 이름( master=...)을 바꾸십시오.

메모:사용자 파일이 존재하는 경우 pulseaudio는 시스템 전체 파일에서 전혀 읽지 않기 때문에 먼저 복사한 다음 편집 /etc/pulse/default.pa해야 합니다 . ~/.config/pulse/default.pa이제부터는 시스템 전체 파일의 변경 사항을 개인 파일에 병합해야 합니다. 또는 시스템 전체 파일을 편집할 수도 있지만 업데이트로 덮어쓰게 되어 모든 작업이 사라질 수 있습니다! (아니면 dpkg가 수동으로 병합하라는 메시지를 표시할 수도 있지만 이를 눈치채지 못했다면 어떻게 됩니까? ( etckeeper여기에 권장 사항을 삽입하십시오.)

여기에도 예가 있습니다.

http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3

그러나 더 혼란스러운 Aux 채널을 사용합니다. 사용하면 remix=no불필요해집니다.

이제 나는 kludge에 대한 당신의 정의가 무엇인지 전혀 모르지만, 이 예제와 PA Wiki 또는 약간의 인터넷 검색을 사용하여 나머지 방법을 얻을 수 있을 것입니다. 추가 채널의 경우 위키에 다음이 나열되어 있습니다.

채널 지도. 쉼표로 구분된 채널 이름 목록입니다. 현재 정의된 채널 이름은 다음과 같습니다: left, right, mono, center, front-left, front-right, front-center, Rear-center, Rear-left, Rear-right, lfe, subwoofer, front-left-of-center , 중앙 전면 오른쪽, 왼쪽 측면, 오른쪽 측면, aux0, aux1 ~ aux15, 상단 중앙, 상단 전면 왼쪽, 상단 전면 오른쪽, 상단 전면 중앙, 상단 후면 왼쪽 , 상단-후면-우측, 상단-후면-중앙, (기본값은 채널 수 및 드라이버에 따라 다름)

그런데 이 pacmd도구는 파일과 정확히 동일한 명령을 사용하므로 default.pa대화형으로 변경한 다음 각각의 default.pa명령 없이 작업 명령을 에 붙여넣을 수 있습니다. pulseaudio가 이미 실행 중이기 때문에 pacmd에서 수행하는 것과 비교하여 일부 모듈을 먼저 언로드하는 등 몇 가지 작업을 약간 다르게 수행해야 할 수도 있습니다 . default.pa나는 이것에 대해 머리를 당기는 데 시간을 보냈습니다. (:v)

관련 정보