问题描述
编辑:这个问题似乎也影响到 18.04。
我从 15.10 开始就有这个问题,但在升级到 16.04 后它开始真正磨合我的齿轮。
假设我插入了耳机。我重新启动\\重新登录\\启动到 ubuntu,然后播放音乐。 \n它来自内置扬声器而不是耳机。
我可以看到在音频设置菜单中检测到耳机,但只有在我更换设备或重新插入耳机后它们才能工作。
这在 15.10 上更容易被忽略,因为那时,在启动后,一切都被静音了。耳机和扬声器,如果在上述启动之前有耳机。
我会在问题中添加日志,但我真的不知道是哪个日志,也不知道如何获取它们(我愿意接受建议)。问题发生在 Dell Inspiron 3537 笔记本电脑上,它内部有一个 Realtek 声卡。
它的侧面有一个输出插孔,既可以作为输入也可以作为输出。
pacmd listcards
的输出
2 card(s) available.
index: 0
name: <alsa_card.pci-0000_00_03.0>
driver: <module-alsa-card.c>
owner module: 6
properties:
alsa.card = "0"
alsa.card_name = "HDA Intel HDMI"
alsa.long_card_name = "HDA Intel HDMI at 0xc0810000 irq 49"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:03.0"
sysfs.path = "/devices/pci0000:00/0000:00:03.0/sound/card0"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "0a0c"
device.product.name = "Haswell-ULT HD Audio Controller"
device.form_factor = "internal"
device.string = "0"
device.description = "Wbudowany dźwięk"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
profiles:
output:hdmi-stereo: Wyjście Digital Stereo (HDMI) (priority 5400, available: unknown)
output:hdmi-surround: Wyjście Digital Surround 5.1 (HDMI) (priority 300, available: unknown)
output:hdmi-surround71: Wyjście Digital Surround 7.1 (HDMI) (priority 300, available: unknown)
output:hdmi-stereo-extra1: Wyjście Digital Stereo (HDMI 2) (priority 5200, available: unknown)
output:hdmi-surround-extra1: Wyjście Digital Surround 5.1 (HDMI 2) (priority 100, available: unknown)
output:hdmi-surround71-extra1: Wyjście Digital Surround 7.1 (HDMI 2) (priority 100, available: unknown)
output:hdmi-stereo-extra2: Wyjście Digital Stereo (HDMI 3) (priority 5200, available: unknown)
output:hdmi-surround-extra2: Wyjście Digital Surround 5.1 (HDMI 3) (priority 100, available: unknown)
output:hdmi-surround71-extra2: Wyjście Digital Surround 7.1 (HDMI 3) (priority 100, available: unknown)
off: Wyłączone (priority 0, available: unknown)
active profile: <output:hdmi-stereo>
sinks:
alsa_output.pci-0000_00_03.0.hdmi-stereo/#0: Wbudowany dźwięk Digital Stereo (HDMI)
sources:
alsa_output.pci-0000_00_03.0.hdmi-stereo.monitor/#0: Monitor of Wbudowany dźwięk Digital Stereo (HDMI)
ports:
hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
properties:
device.icon_name = "video-display"
index: 1
name: <alsa_card.pci-0000_00_1b.0>
driver: <module-alsa-card.c>
owner module: 7
properties:
alsa.card = "1"
alsa.card_name = "HDA Intel PCH"
alsa.long_card_name = "HDA Intel PCH at 0xc0814000 irq 48"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:1b.0"
sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "9c20"
device.product.name = "8 Series HD Audio Controller"
device.form_factor = "internal"
device.string = "1"
device.description = "Wbudowany dźwięk"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
profiles:
input:analog-stereo: Wejście Analogowe stereo (priority 60, available: unknown)
output:analog-stereo: Wyjście Analogowe stereo (priority 6000, available: unknown)
output:analog-stereo+input:analog-stereo: Analogowy dupleks stereo (priority 6060, available: unknown)
off: Wyłączone (priority 0, available: unknown)
active profile: <output:analog-stereo+input:analog-stereo>
sinks:
alsa_output.pci-0000_00_1b.0.analog-stereo/#1: Wbudowany dźwięk Analogowe stereo
sources:
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#1: Monitor of Wbudowany dźwięk Analogowe stereo
alsa_input.pci-0000_00_1b.0.analog-stereo/#2: Wbudowany dźwięk Analogowe stereo
ports:
analog-input-internal-mic: Wewnętrzny mikrofon (priority 8900, latency offset 0 usec, available: unknown)
properties:
device.icon_name = "audio-input-microphone"
analog-input-headphone-mic: Mikrofon (priority 8700, latency offset 0 usec, available: no)
properties:
device.icon_name = "audio-input-microphone"
analog-input-headset-mic: Mikrofon na słuchawkach (priority 8700, latency offset 0 usec, available: no)
properties:
device.icon_name = "audio-input-microphone"
analog-output-speaker: Głośniki (priority 10000, latency offset 0 usec, available: unknown)
properties:
device.icon_name = "audio-speakers"
analog-output-headphones: Słuchawki (priority 9000, latency offset 0 usec, available: no)
properties:
device.icon_name = "audio-headphones"
最佳思路
我对此的看法是以下利用 PulseAudio。假设当您登录 Ubuntu 时,您始终连接着耳机,那么以下内容将确保当您启动到 Ubuntu 时它会自动将其设置为默认输入和输出(假设您同时需要)。
在 Ubuntu 上,转到终端并键入以下内容,您只会从中收集索引号:
对于您的输出设备:
pacmd list-sinks
– 会有很多信息,但要查找索引号和将成为新默认输出设备的相应设备。
对于您的输入设备:
pacmd list-sink-inputs
或 pacmd list-samples
– 会有很多信息,但要查找索引号和将成为新默认输入设备的相应设备。使用 list-samples 以防 list-sink-inputs 不显示。
到目前为止,在 Ubuntu 上,连接耳机后,您应该有 2 个索引号。一个用于您的输入和输出。现在我们将去编辑您的 pulseaudio 默认配置:
sudo nano /etc/pulse/default.pa
转到最后一行并简单地添加以下内容:
set-default-sink 1
– 这对应于查看 pacmd list-sinks
的索引后的输出源。 1 是索引,因此将其更改为您得到的那个。
set-default-source 5
– 这对应于查看 pacmd list-sink-inputs
或 pacmd list-samples
的索引后的输入源。数字 5 是索引,因此将其更改为您得到的那个。
保存文件并重新启动计算机进行测试。测试涉及检查您是否获得了正确的索引值,因为某些设备具有相似的名称(如 NVIDIA 或 INTEL 音频源)。
如果一切设置正确,每次启动计算机时,您应该会看到 Ubuntu 将默认输入/输出设置为耳机。由于您在谈论耳机,对于降噪,您可以使用我的其他答案来帮助您:Realtime noise-removal with PulseAudio?
注意:您还可以使用 pacmd list-sources
查看所有设备,也可以不使用索引号,而是使用分配设备的名称,如下所示:
alsa_input.usb-Logitech_Logitech_USB_Headset-00.analog-mono.echo-cancel
让您了解要查找的名称(我知道超长)。名称使用起来更准确但更难记住,因此您可以在此处选择使用其中一个。使用名称的最终结果将是这样的:
default.pa 文件中的 set-default-source alsa_input.usb-Logitech_Logitech_USB_Headset-00.analog-mono.echo-cancel
,仅供您参考。
对于 GUI 选项,我推荐 pavucontrol
或 PulseAudio Volume Control。它提供了一个选项来将设备设置为输入和输出设备的默认/回退。使用这两种技术可能会给你你想要的。
次佳思路
如果您的声音设备是 0 – HDMI 和 1 – 模拟,您可以切换到耳机
$ pacmd set-sink-port 1 analog-output-headphones
要使其永久化,请编辑 /etc/pulse/default.pa
并在 ### Make some devices default
下的底部放置:
set-default-sink 1
set-sink-port 1 analog-output-headphones
现在一切都应该按预期工作。当您厌倦了使用耳机时,请确保再次将其注释掉。