更改蓝牙耳机默认音频模式(A2DP Sink 与 HSP/HFP)

更改蓝牙耳机默认音频模式(A2DP Sink 与 HSP/HFP)

我有索尼WH-1000XM2蓝牙 4.1 耳机(带个人资料 自动化测试平台心肺复苏计划氢氟酸, 和热休克蛋白) 适用于 Ubuntu

但是,它们总是以耳机模式连接到 PC,单声道音频质量很差。为了获得正确的高清立体声,我必须:

  1. 打开耳机,等待配对(自动连接到耳机模式)
  2. 使用以下方式断开耳机Blueman 经理
  3. 重新连接指定高保真播放音频配置文件的耳机。

当我尝试在连接时更改配置文件时,我得到了Failed to change profile to a2dp_sink。有趣的是,它可以从 更改a2dphsp/hsf就好了……

有没有办法配置这个蓝牙设备自动连接到高保真播放?

在网上多次搜索解决方案均未发现任何有用的信息。

答案1

我也遇到了同样的问题。我的索尼WH-1000XM2仅在最初与Ubuntu 18.04。重启或关闭/打开耳机后,它们会自动连接,但声音很糟糕。我不得不移除蓝牙设备并重新配对。我尝试了互联网上的所有解决方案,这些解决方案声称配置如下:

/etc/bluetooth/main.conf

或者

/etc/bluetooth/audio.conf

应该可以解决问题。但实际上不行。耳机继续与“HSP/HFP”个人资料和‘A2DP 接收器’直到手机修好后才能设置。

更方便的方法是使用命令行,而不是物理地按下按钮并通过 UI 重新连接。所以这个答案帮助我实现了这一点。但是,这对我来说看起来像是很多命令,所以我将它们编写成脚本这个要点。它应该可以开箱即用。

每当手机自动重新连接(初始配对后)并开始使用“HSP/HFP”只需执行此脚本,配置文件就会设置为‘A2DP 接收器’。您可能需要根据耳机调整睡眠间隔。

我希望这个问题能在 PulseAudio 和 Ubuntu 的即将发布版本中得到修复。

答案2

我在 Ubuntu 20.04 上也遇到了类似的问题

我能够选择A2DP我的耳机(Bose QC 700)的配置文件。我能够选择 A2DP,但每次耳机断开连接时,它都会默认到个人HSP/HFP资料。

按照提到的解决方案这里这里A2DP现在每次连接时都会自动选择:

  • 添加/etc/pulse/default.pa以自动将 pulseaudio 接收器切换到 Bluez:
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
load-module module-switch-on-connect  # Add this
.endif
  • 编辑/etc/bluetooth/main.conf以自动选择 A2DP 配置文件(而不是 HSP/HFP):
[General]
Disable=Headset # Add this
  • 应用更改(您可能还需要关闭蓝牙耳机,然后重新打开):
pulseaudio -k                       # Kills pulseaudio
pulseaudio --start                  # Starts pulseaudio
sudo systemctl restart bluetooth

答案3

我遇到了非常类似的问题。正如 egelev 所说,许多解决方案实际上并没有解决任何问题...

但是,为了便于将来参考,我找到了一个涉及更改 /etc/pulse/default.pa 的解决方案,该解决方案对我来说非常有效,可以找到完整的解决方案这里简而言之,执行以下操作会自动将配置文件更改为 A2DP,并在连接带麦克风的蓝牙耳机时禁用耳机功能:

# In /etc/pulse/default.pa do the following:
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
load-module module-switch-on-connect # Add this line
.endif


# Create or change /etc/bluetooth/audio.conf with the following lines:
[General]
Disable=Headset

# Restart pulseaudio
pulseaudio -k

答案4

我遇到了类似的问题,我忘记了我安装了pipewire与该pulseaudio-module-bluetooth包冲突的亚德客(高级音频分发配置文件)。因此,检查是否pipewire正在运行

ps -e | grep pipewire

如果它正在运行,请卸载 pipewire 并保留 pulseaudio-module-blueoth 模块,或者您可以给 pipewire 一个机会,因为它具有高级选项和性能。

  • 保持管道

    首先在命令行中使用以下命令卸载以下模块

    sudo apt remove pulseaudio-module-bluetooth
    

    并使用以下方式安装所有 pipewire 包

     sudo apt-get install pipewire-*
    

    在配置文件末尾额外添加以下代码/etc/pulse/default.pa

    ### Added to make headset work for pipewire
    ### https://wiki.debian.org/BluetoothUser/a2dp
    load-module module-bluez5-device 
    load-module module-bluez5-discover
    

    在我的等离子桌面上,所有编解码器现在都可用:

    在此处输入图片描述

  • 保留默认的 pulseaudio-module

    如果您使用 ubuntu 的默认 pulseaudio 设置,请简单卸载或禁用,pipwire例如:

    sudo apt-get remove pipewire*
    

有关 a2dp 问题的更多信息,请访问蓝牙用户/a2dp - Debian Wiki

顺便提一句:我的蓝牙硬件是在Intel Corporation Wi-Fi 6 AX201芯片中实现的,因此需要从 Linux 内核主页下载(截至 2022 年 3 月)最新的固件驱动程序。我使用的固件是:

> ls  -1 /lib/firmware/iwlwifi-QuZ-a0-hr-b0-*

/lib/firmware/iwlwifi-QuZ-a0-hr-b0-48.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-50.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-53.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-55.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-59.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-62.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-63.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-65.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-66.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-67.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-68.ucode
/lib/firmware/iwlwifi-QuZ-a0-hr-b0-71.ucode

相关内容