私のサウンドカードには、明確に説明するために2つのポートがあります。これを「スピーカー」と「ヘッドホン」ポートと呼びます。 Windowsにはオーディオコントロール用の2つの別々のポートがあり、スピーカーとヘッドフォンを自由に切り替えることができます。
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で自動サイレントモードを無効にすることで無効にできます。その後、ヘッドフォンポートとスピーカーポートのレベルを独立して制御できます。