Ubuntu20.04 外接音响播放音乐时出现杂音解决方法

  • 引言
  • 在Ubuntu 20.04及以上版本中使用Pipewire。
  • 更新系统内核等
  • 安装最新的Pipewire库
  • 用Pipewire替换PulseAudio
  • 验证 Pipewire 安装


引言

当更新系统版本至20.04或更高版本后,有可能会出现声卡驱动版本不兼容的情形,此时就可能会出现外接音响或内置播放器播放音频时会有杂音出现,此时我们只需要使用最新的Pipewire sound serve,PipeWire是一个用于处理Linux上多媒体的服务器。它最常见的用途是用于Wayland和Flatpak应用程序,以最小的延迟实现音频和视频播放和捕获。而且它对基于PulseAudio、JACK、ALSA和GStreamer的应用提供无缝支持。

在Ubuntu 20.04及以上版本中使用Pipewire。

在最近的版本中,Ubuntu现在拥有更好的Pipewire支持。在Ubuntu 21.10以上版本中开箱即用。

更新系统内核等

首先,按键盘上的Ctrl+Alt+T打开终端,运行命令安装所有可用的软件包更新。

sudo apt update && sudo apt upgrade

如果你长时间没有进行系统软件包更新,可能需要重新启动系统。

安装最新的Pipewire库

打开终端,运行下面的命令来添加PPA:

sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream

添加PPA后,运行命令安装pipewire。

sudo apt install pipewire

对于GStreamer、JACK、蓝牙支持,通过命令安装更多的库。

sudo apt install gstreamer1.0-pipewire libpipewire-0.3-{0,dev,modules} libspa-0.2-{bluetooth,dev,jack,modules} pipewire{,-{audio-client-libraries,pulse,media-session,bin,locales,tests}}

安装完成后,重启你的系统。

用Pipewire替换PulseAudio

Ubuntu 21.04已经正式启用对pipewire的支持。下面是我如何在20.04启用它的。

  1. 打开终端运行以下命令:
sudo apt install pipewire-audio-client-libraries
  1. 然后创建以下文件及目录
sudo touch /etc/pipewire/media-session.d/with-alsa

若显示“No such file or directory”,则可以使用mkdir先创建目录再touch创建文件即可

  1. 通过复制示例文件创建pipewire-pulse服务文件
sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
  1. 你不必删除PulseAudio,只要禁用它并启用Pipewire即可。
  • 运行命令,重新加载新的服务文件。
systemctl --user daemon-reload
  • 通过命令禁用 PulseAudio 服务。
systemctl --user --now disable pulseaudio.service pulseaudio.socket
  • 最后启用 Pipewire 服务。
systemctl --user --now enable pipewire pipewire-pulse
systemctl --user --now enable pipewire-media-session.service

如果你在Ubuntu 20.04中工作,可以尝试在重启前通过运行命令 "屏蔽 "PulseAudio服务。

systemctl --user mask pulseaudio

验证 Pipewire 安装

检查Pipewire是否工作,运行pactl info命令。如果你在输出中看到 “PulseAudio (on PipeWire 0.3.xx)”,那么它就正常了。

android SoundPool播放有杂音 soundwire安卓_重启


至此问题已得到良好解决。