这篇文章上次修改于 759 天前,可能其部分内容已经发生变化,如有疑问可询问作者。 Ubuntu 22.04 对低延迟 PipeWire 多媒体框架有更好的支持。 以下是为 PulseAudio、ALSA、JACK 和蓝牙输出设置它的方法。 首先,Pipewire 是开箱即用的预安装,并自动作为后台服务运行。 您可以通过在终端中运行以下命令来检查它: ``` systemctl --user status pipewire pipewire-session-manager ``` ![](https://blog.37hi.com/usr/uploads/2022/09/1003879466.png) **重要提示:到目前为止,Ubuntu 还没有正式支持。 它仍然可能无法在某些设备上运行。** ## 第 1 步:安装客户端库 虽然开箱即用,但默认情况下它不用于音频输出。 要开始,首先按键盘上的 Ctrl+Alt+T 打开终端,然后运行命令安装客户端库: ``` sudo apt install pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack ``` ![](https://blog.37hi.com/usr/uploads/2022/09/622874472.png) ## 第2步:安装wireplumber来替换pipewire-media-session 项目维护者现在推荐更高级的“wireplumber”会话管理器何时使用 Pipewire 作为系统声音服务器。 要安装软件包并删除“pipewire-media-session”,请在终端中运行以下命令: ``` sudo apt install wireplumber pipewire-media-session- ``` 注意:命令末尾有一个“-”表示删除包。 该命令还将自动安装所需的 pipewire-pulse。 ![](https://blog.37hi.com/usr/uploads/2022/09/2591566541.png) ## 第3步:复制配置文件: 电线使事情变得很容易! 如果您只想用 Pipewire 替换 PulseAudio,请启用媒体会话服务并重新启动,仅此而已! 要将 ALSA 客户端配置为通过 PipeWire 输出,请运行命令复制配置文件: ``` sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/ ``` 然后 `sudo ldconfig`。 对于蓝牙,只需通过命令删除 pulseaudio-module-bluetooth 包: ``` sudo apt remove pulseaudio-module-bluetooth ``` ![](https://blog.37hi.com/usr/uploads/2022/09/2677887921.png) 最后,通过运行命令启用媒体会话: ``` systemctl --user --now enable wireplumber.service ``` ## 第 4 步:验证 重新启动 Ubuntu 22.04 后,在终端中运行以下命令: ``` pactl info ``` 它应该输出声音服务器:PulseAudio(在 PipeWire x.x.x 上)表示 Pipewire 正在用作声音输出。 ![](https://blog.37hi.com/usr/uploads/2022/09/4258136032.png) ## 如何恢复: 要撤消更改,首先通过命令删除客户端库: ``` sudo apt remove pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack ``` 删除wireplumber并重新安装以前的媒体会话包(最后还有'-'): ``` sudo apt install pipewire-media-session wireplumber- ``` 最后,通过运行命令重新启用 pipewire-media-session 服务 ``` rm -f ~/.config/systemd/user/pipewire-session-manager.service systemctl --user --now enable pipewire-media-session ``` 如果声音仍然不起作用,请尝试通过以下命令禁用 pipewire-pulse 服务: ``` systemctl --user --now disable pipewire-pulse.service pipewire-pulse.socket ``` 如果您之前是全局启用它的,也可以通过以下命令禁用它: ``` sudo systemctl --global --now disable pipewire-pulse.service pipewire-pulse.socket ``` 并通过命令重新启用原始的 pulseaudio 服务: ``` systemctl --user --now reenable pulseaudio.service pulseaudio.socket sudo systemctl --global --now reenable pulseaudio.service pulseaudio.socket ```
没有评论