我以前从未使用过 Ubuntu。我刚刚将 Ubuntu 加载到我的 Dell XPS One 2710 一体机上
英特尔 i5 CPU
英特尔 7 系列/C216 芯片组系列高清晰度音频控制器(驱动程序 = snd_hda_intel)
一切正常,除了扬声器没有声音(没有系统声音、没有网络视频声音、没有 Spotify,什么都没有)。
我在网上查了一下,调查了一些事情,并收集了以下信息:
声音设置:“扬声器 - 内置音频”是唯一的声音输出设备,并且已选中,未静音,输出音量最大。唯一可用的配置文件是“模拟立体声输出”。当我使用“测试扬声器”按钮时,没有声音。
如果我将耳机插入计算机,我可以通过耳机听到系统声音、网络视频和 Spotify。
当我从终端运行 pavucontrol 程序时,“输出设备”选项卡将端口显示为“扬声器”。下拉菜单中还有一个“耳机(未插电)”选项。如果我将端口更改为“耳机(未插电)”,那么扬声器就可以工作,我可以听到系统声音、Spotify 等。
这解决了问题,直到我重新启动计算机,此时我必须再次重新运行 pavucontrol 并进行相同的更改。
我该如何修复这个问题,让计算机重新启动时扬声器处于启用状态,这样我就不必手动运行 pavucontrol 并重置端口了?这似乎是设置或驱动程序的问题。
答案1
似乎 PulseAudio 无法正确识别您的扬声器,因此它同时使用耳机输出:耳机(插入时)和扬声器(拔出时)
由于 PulseAudio 默认使用“扬声器 - 内置音频”,并且当您选择“耳机(未插电)”时扬声器可以正常工作,pavucontrol
因此您可以调整 PulseAudio,使其默认设置耳机选项,即使未插电。
首先,您需要使用 来识别输出设备。在终端上pactl
运行: 。您应该会看到所有输出设备的列表。您可能一开始无法确定哪个是正确的设备,但您可以使用名称来指导。pactl list short sinks
就我而言,我得到了这个:
$ pactl list short sinks 0 alsa_output.pci-0000_00_1f.3.analog-stereo module-alsa-card.c s16le 2ch 44100Hz IDLE 1 PulseEffects_apps module-null-sink.c s16le 2ch 44100Hz RUNNING 2 PulseEffects_mic module-null-sink.c s16le 2ch 44100Hz IDLE 3 bluez_sink.C0_28_8D_93_25_42.a2dp_sink module-bluez5-device.c s16le 2ch 44100Hz RUNNING
运行pactl set-default-sink 'copy-paste-here-the-device-name'
。这会将您之前选择的设备设置为默认设备。如果您选择了正确的设备,您的扬声器应该会开始工作。
就我的情况而言(使用第一个接收器):
$ pactl set-default-sink 'alsa_output.pci-0000_00_1f.3.analog-stereo'
适用于我的扬声器。
现在您已经识别出扬声器的正确输出设备,您可以调整 PulseAudio 以便默认使用它。
以超级用户身份使用文本编辑器打开此文件:/etc/pulse/default.pa
。通常gedit
在 Ubuntu 上有效。滚动到文件底部,以 开头的两行将set-
被注释掉。
set-default-sink output
通过删除开头的 # 图标来取消注释。将该单词替换output
为您要设置为默认源的编号。
在我的情况下,它适用于:0 alsa_output.pci-0000_00_1f.3.analog-stereo
对于我的扬声器。因此,取消注释的行将如下所示:
完成此操作后,删除~/.config/pulse
目录,然后重新启动系统。系统重新启动后,相应的设备应已设置为默认设备。
这种方法的缺点是,如果设备列表发生变化,设备的索引也可能会发生变化,这意味着可能需要重复此过程。
我用了这指南来回答这个问题。
希望能帮助到你!