Linux声卡避坑

坑的由来

Linux的声音系统
Linux上有许多和声音相关的部件,包括但不限于ALSA、OSS、PulseAudio、Jack

PipeWire 是一个新的底层多媒体框架。 它旨在以最低的延迟为音频和视频提供录制和播放功能,并支持基于 PulseAudio、JACK、ALSA 和 GStreamer 的应用程序。

选择PipeWire而弃用PulseAudio的原因主要在于PipeWire提供了统一的音视频处理框架,支持更低延迟和更高性能,适合专业音频制作和实时应用程序。它与PulseAudio和JACK兼容,提供更大的灵活性和兼容性,同时增强了安全性,特别是在Wayland会话中实现了更细粒度的权限管理。此外,PipeWire采用现代化设计,便于扩展和维护,得到了越来越多的Linux发行版和开发者社区的支持,成为未来多媒体处理的主流选择。

我自己遇到的最大的坑来源于更新系统后系统没声了,或使用浏览器播放视屏时没有声音,搜了半天最后发现可能是 pipewire 与 pulseaudio 冲突了,通过卸载 pulseaudio 能得到解决,然后又发现还有软件会依赖 pulseaudio ,再看了一下文章,发现是可以用PipeWire替代PulseAudio 的。

使用PipeWire替代PulseAudio填坑

安装PipeWire

sudo pacman -S pipewire pipewire-pulse pipewire-jack pipewire-alsa wireplumber

pipewire-pulse 和 pulseaudio 冲突,需要先卸载 pulseaudio

systemctl --user stop pulseaudio.{service,socket}
systemctl --user disable pulseaudio.{service,socket}
sudo pacman -R pulseaudio

卸载完 pulseaudio 后将 pipewire 安装后尽量重启系统或手动启动相关服务

systemctl --user start pipewire pipewire-pulse pipewire-media-session

参考

PipeWire Arch Wiki

使用PipeWire取代PulseAudio

linux所有的浏览器都不能播放视频 - 哔哩哔哩