自动将声音输出设备切换为蓝牙耳机并在连接时强制使用 A2DP 配置文件

自动将声音输出设备切换为蓝牙耳机并在连接时强制使用 A2DP 配置文件

我的蓝牙耳机(Plantronics Backbeat Go2)与我的系统连接得很好,但我必须采取几个手动步骤才能完成这项工作,我非常希望能够实现自动化:

  1. 每次重启后,我都必须在终端中运行 pactl load-module module-bluetooth-discover 才能让设备连接。我尝试将其放入 shell 脚本中,以便在启动时运行,但没有成功 :(
  2. 我的耳机可以自动连接,没有任何问题,但它总是默认使用电话双工或关闭,而不是 A2DP;我尝试过几种不同的策略来强制使用 A2DP,但都失败了 :(
  3. 强制将 BT 耳机设置为默认输出设备。这里也尝试了几种策略……不幸的是,每次我连接耳机时,pacmd 的索引似乎都会发生变化,所以我无法通过这种方式在 PA conf 文件 set-default-sink 中强制使用默认值。而且使用列出的名称似乎也不起作用 - 如果耳机不存在,它会切换到扬声器,如果耳机连接,它就不会切换回来 :(

感谢您对解决这些问题提供的任何建议!

答案1

这对我有用:https://sandalov.org/blog/2146/

此处复制了以下说明以供后人参考:

Add to /etc/pulse/default.pa to automatically switch pulseaudio sink to Bluez:

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
load-module module-switch-on-connect  # Add this
.endif

Modify/Create /etc/bluetooth/audio.conf to auto select A2DP profile (instead of HSP/HFP):

[General]
Disable=Headset # Add this

Apply changes:

pulseaudio -k # Restarts pulseaudio

# You may need to turn your bluetooth headphones off, then back on

答案2

不仅在重启后,而且在断开并重新连接支持 HSP 和 A2DP 配置文件的设备后,Bluez 始终以 HSP(headest)模式连接它。

我无法详细地说出引擎盖下发生了什么(蓝牙有很多怪癖),但我怀疑我们正在连接一个新设备耳机而不是作为声音的或者音频接收器通过 dbus 的设备。

似乎没有可以控制这一点的设置。我不知道我们可以进行哪些设置来默认将蓝牙设备连接到 A2DP(但我不能排除我错过了某处的文档)。这可能被视为一个错误。

有时我写了一个脚本来使用声音的配置文件。此脚本包含在一个小型 GUI Python 应用程序中(bt 自动连接在启动板上或通过我的ppa:takkat-nebuk/塔卡) 它与其他调整一起完成了这个任务,但它更多的是一种黑客行为而不是一个明确的解决方案,遗憾的是它不能与周围的所有适配器一起使用,但它会首先以 A2DP 模式连接我的飞利浦耳机(即使声音设置仍然声称它是 HFP,但那是另一个问题)。

相关内容