在 Ubuntu 20.04 中用 Pipewire 替换 Pulseaudio

1nf*_*rn0 9 pulseaudio microphone bluetooth alsa pipewire

由于我安装了 ubuntu 20.04,我遇到了系统未检测到我的蓝牙耳机麦克风的问题。我的耳机与 Windows 完美配合。另外,我无法在 ubuntu 中从 AD2P 切换到 HFP。所以我最后的想法是删除pulseaudio并安装pipewire,希望它能解决我的问题。

任何人都可以提供执行相同操作的步骤吗?我已经搜索了很多次,但无法找到正确的步骤。

非常感谢!

小智 23

添加到 1nfern0 的答案中,pactl info在执行所有步骤后,我遇到了连接失败。我通过运行解决了这个问题 systemctl --user --now enable pipewire pipewire-pulse

您可能还需要重新启动系统一次。


1nf*_*rn0 11

我在使用 Oneplus Wireless Z Bass 版时遇到了同样的问题。PulseAudio 没有检测到我的耳机麦克风,问题是我的耳机没有 HSP 配置文件,只有 HFP 配置文件。尝试了2天,终于找到了用Pipewire声音服务器替换PulseAudio的方案,本身支持HSP、HFP和A2DP。因此无需安装任何其他实用程序,例如ofono, phonesim。另外,请注意,即使按照ofonoPulseAudio 中的所有配置步骤,我的问题也没有解决。所以我想出了用 PipeWire 替换 PulseAudio 的步骤。

这是我为解决这个问题而写的详细文章,我也在此处添加了其中的步骤。您可以遵循它,并且很可能能够解决您的问题。

未检测到蓝牙耳机麦克风

打开您的终端并按照以下步骤操作:

  1. 我们将使用 PPA 将 Pipewire 添加到 Ubuntu 20.04,它会定期维护:

    sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
    
    Run Code Online (Sandbox Code Playgroud)
  2. 要更新系统中的 PPA 包,请执行以下操作:

    sudo apt update
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装软件包:

    sudo apt install pipewire
    
    Run Code Online (Sandbox Code Playgroud)
  4. 还有一个依赖需要和Pipewire一起安装,否则会出现“安装pipewire后蓝牙耳机无法连接”的问题。通过以下方式安装依赖项:

    sudo apt install libspa-0.2-bluetooth
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在,安装客户端库:

    sudo apt install pipewire-audio-client-libraries
    
    Run Code Online (Sandbox Code Playgroud)
  6. 重新加载守护进程:

    systemctl --user daemon-reload
    
    Run Code Online (Sandbox Code Playgroud)
  7. 禁用 PulseAudio:

    systemctl --user --now disable pulseaudio.service pulseaudio.socket
    
    Run Code Online (Sandbox Code Playgroud)
  8. 如果您使用的是 Ubuntu 20.04,您还需要通过以下方式“屏蔽”PulseAudio:

    systemctl --user mask pulseaudio
    
    Run Code Online (Sandbox Code Playgroud)

我不确定,但如果可能,您也可以尝试在其他版本上运行它。
9. Pipewire 新的更新后,还需要启用pipewire-media-session-service

   systemctl --user --now enable pipewire-media-session.service
Run Code Online (Sandbox Code Playgroud)
  1. 您可以确保 Pipewire 现在正在运行:

    pactl info
    
    Run Code Online (Sandbox Code Playgroud)

    此命令将提供以下输出,在服务器名称中您可以看到:

    PulseAudio (on PipeWire 0.3.28)
    
    Run Code Online (Sandbox Code Playgroud)

    现在应该一切正常,您可以看到您的麦克风。

如果它没有出现,请尝试通过以下命令重新启动 Pipewire:

systemctl --user restart pipewire
Run Code Online (Sandbox Code Playgroud)

编辑:如果安装了 ofono 和 phonesim,则需要从系统中卸载它们。

sudo apt remove ofono
sudo apt remove ofono-phonesim
Run Code Online (Sandbox Code Playgroud)

如果它仍然没有显示您的麦克风,您可以尝试重新启动一次,然后删除并再次配对您的蓝牙设备以检查它现在是否有效。

我希望我已经帮助你解决了你的问题。

如果您想回滚我们所做的所有更改,您可以使用:

systemctl --user unmask pulseaudio
systemctl --user --now enable pulseaudio.service pulseaudio.socket
Run Code Online (Sandbox Code Playgroud)