商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Ubuntu如何解决声音消失问题

Ubuntu如何解决声音消失问题

  发布于2026-08-22 阅读(0)

扫一扫,手机访问

Ubuntu声音消失八成是音频服务卡住、输出设备选错或ALSA配置被覆盖,先用ps aux | grep -E "(pipewire|pulseaudio)" | grep -v grep确认框架,再对应重启PipeWire或PulseAudio服务,并检查输出设备和alsamixer设置。

Ubuntu如何解决声音消失问题

Ubuntu声音消失,八成不是硬件坏了,而是音频服务卡住、输出设备选错,或者ALSA底层配置被意外覆盖。直接重启 PulseAudio 或 PipeWire 往往就能恢复,但得先确认你当前用的是哪个音频框架。

怎么判断用的是 PulseAudio 还是 PipeWire

Ubuntu 22.04 及更早默认 PulseAudio;24.04 开始默认 PipeWire,但部分用户可能手动降级或残留旧配置。别猜,终端里跑这行:

ps aux | grep -E "(pipewire|pulseaudio)" | grep -v grep

如果看到 pipewirewireplumberpipewire-pulse,说明你在用 PipeWire;如果只看到 pulseaudio 进程,那就是 PulseAudio。

容易踩的坑:

  • 混用命令:对 PipeWire 执行 pulseaudio -k 会报错或无效,因为 PulseAudio 进程根本没在运行
  • 误以为“没声音=驱动没装”,其实只是音频服务没起来,aplay -l 能列出声卡就说明驱动正常

一键重启对应音频服务

确认框架后,执行对应命令,不用重启系统:

如果是 PipeWire(Ubuntu 24.04 默认):

systemctl --user restart pipewire wireplumber pipewire-pulse

如果是 PulseAudio:

pulseaudio -k && sleep 2 && pulseaudio --start

执行完等 3–5 秒,再点右上角音量图标测试。很多情况下这就够了——比如会议软件退出异常、Chrome 卡住音频流、或系统更新后服务未自启。

注意,在使用pulseaudio --start时,一定要在-k后加上sleep,否则可能会因竞争条件而失败。另外,PipeWire的三个service必须一同重启,仅重启pipewire是不够的。其中,wireplumber负责设备路由,pipewire-pulse则用于兼容旧应用。

输出设备被切到 HDMI/蓝牙却没察觉

这是最隐蔽也最高频的问题:你没动过设置,但插拔过 HDMI 显示器、连过蓝牙耳机,系统自动把默认输出切走了。右键音量图标 → “声音设置” → “输出”里看当前选中的是什么。常见陷阱:

  • 显示为 Speakers - Built-in Audio,但实际是 HDMI 声卡(尤其带核显的 Intel/NVIDIA 笔记本)
  • 蓝牙耳机连着但没播放,却仍被设为默认 sink,导致本地扬声器完全静音
  • “配置文件(Profile)”选了 Headset Head Unit (HSP/HFP),这个模式只传单声道语音,不走媒体音频,自然没音乐声

解决方法:在“输出”下拉菜单里手动选回 SpeakersAnalog Output;在“配置文件”里选 High Fidelity Playback (A2DP Sink)(蓝牙)或 Analog Stereo Duplex(有线)。

alsamixer 里某个通道被静音(MM)或音量归零

GUI 设置有时不反映底层 ALSA 状态。alsamixer 是绕过所有中间层直控硬件寄存器的工具。终端运行:

alsamixer

F6 选对声卡(通常是 defaultHDA Intel PCH),然后用左右箭头切换通道,重点检查:

  • Master:主音量,不能是 MM(静音),数值建议 ≥70
  • PCM:数字音频通路,很多集成声卡靠它放大,常被误关
  • SpeakerFront:笔记本内置扬声器专用通道,有些机型默认禁用
  • Auto-Mute Mode:设为 Disabled,否则插耳机后拔出,扬声器不会自动恢复

M 切换静音,↑/↓ 调音量。改完按 Esc 退出,不用手动保存——alsamixer 退出即写入内核。

真正复杂的地方在哪儿呢?有些笔记本(特别是Dell、Lenovo的新机型)的扬声器启用需要额外的内核参数,例如options snd-hda-intel dmic_detect=0。这类问题在alsamixer里根本看不到对应的通道,得通过查看dmesg | grep snd,看是否有probe failed提示。这可就不是“重启服务就能好”那么简单了。

本文转载于:https://www.php.cn/faq/3025545.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

产品推荐

热门关注