내 사운드 카드에는 명확하게 설명하기 위해 두 개의 포트가 있습니다. 이를 "스피커" 및 "헤드폰" 포트라고 부르겠습니다. Windows에는 오디오 제어를 위한 두 개의 별도 포트가 있으며 스피커와 헤드폰 사이를 마음대로 전환할 수 있습니다.
Linux에서는 기본적으로 오디오가 항상 스피커 포트에서 나오며 헤드폰을 연결하면 자동으로 헤드폰 포트로 전환됩니다.
이 동작을 어떻게 제어할 수 있나요? pacmd의 "sink-set-port"를 사용해 보았더니 "list-sinks" 출력에 "활성 포트"가 변경된 것으로 나타났지만 실제로는 아무 일도 일어나지 않았습니다.
목록 수신자의 데이터:
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "ALC889 Analog"
alsa.id = "ALC889 Analog"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "HDA Intel PCH"
alsa.long_card_name = "HDA Intel PCH at 0xfbff8000 irq 60"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:1b.0"
sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "1c20"
device.product.name = "6 Series/C200 Series Chipset Family High Definition Audio Controller"
device.form_factor = "internal"
device.string = "front:0"
device.buffering.buffer_size = "65536"
device.buffering.fragment_size = "32768"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Analog Stereo"
device.description = "Built-in Audio Analog Stereo"
alsa.mixer_name = "Realtek ALC889"
alsa.components = "HDA:10ec0889,1458a022,00100004"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: yes)
properties:
device.icon_name = "audio-headphones"
active port: <analog-output>
답변1
그 결과 헤드폰 잭에 무언가가 연결되면 ALSA가 자동으로 메인 스피커를 음소거합니다. alsamixer에서 자동 무음 모드를 비활성화하여 비활성화할 수 있습니다. 그런 다음 헤드폰 포트와 스피커 포트의 레벨을 독립적으로 제어할 수 있습니다.