如何在不重启的情况下在 pulseaudio 和 pipewire 之间切换?

如何在不重启的情况下在 pulseaudio 和 pipewire 之间切换?

IIUCpipewire是一种音频系统服务,也是 的较新替代品pulseaudio。它现在是 Fedora 的默认设置。首次升级到 Fedora 37 时,我注意到音频质量明显变差,奇怪的是缺少低频/低音音量。我通过使用以下命令切换回 pulseaudio 进行了双重检查。在同一台机器上启动 Windows 时也存在差异。

# Use pulseaudio
sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio

要再次使用 pipewire,

# Use pipewire
sudo dnf swap --allowerasing pulseaudio pipewire-pulseaudio

运行这些程序后,需要重启系统以停止旧服务并启动新服务。有没有更快的方法可以在不重启的情况下在它们之间切换以测试音频质量?

(自从升级到 Fedora 39 后,我就看不出区别了)

答案1

这对我有用。

# Switch to pulseaudio
sudo dnf swap -y --allowerasing pipewire-pulseaudio pulseaudio && { \
 systemctl --user stop pipewire.socket pipewire-pulse ; \
 sleep 1 ; \
 pulseaudio -D ; \
 sleep 1 ; \
 ps -e | grep 'pipe\|pulse' ; }


# Switch to pipewire
sudo dnf swap -y --allowerasing pulseaudio pipewire-pulseaudio && { \
 pkill -x pulseaudio ; \
 sleep 1 ; \
 systemctl --user restart pipewire.socket pipewire-pulse ; \
 sleep 1 ; \
 ps -e | grep 'pipe\|pulse' ; }

每组命令都会安装替代包,停止之前的服务,启动新服务并使用 进行验证ps -e。我的猜测是pipewire-pulseaudio在 pipewire 之上实现一些 pulseaudio API,可能像 Xwayland 允许在 wayland 上运行 X11 应用程序一样,但有一个限制,它不能同时存在,所以需要pulseaudio一个。dnf swap

我在这些论坛上找到了这些命令:

相关内容