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

Log*_*gos 15 pulseaudio bluetooth

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

  1. 每次重新启动后,我都必须在终端中运行 pactl load-module module-bluetooth-discover 才能让设备完全连接。我试着把它放在一个 shell 脚本中以在启动时运行,但没有骰子 :(
  2. 我的耳机自动连接没有问题,但它总是默认为双工电话,甚至是关闭而不是 A2DP;我尝试了几种不同的策略来强制 A2DP ,但都失败了 :(
  3. 强制 BT 耳机成为默认输出设备。在这里也尝试了几种策略......不幸的是,每次我连接耳机时,pacmd 的索引似乎都会改变,所以我不能以这种方式在 PA conf 文件 set-default-sink 中强制设置默认值。并且使用列出的名称似乎也不起作用 - 如果耳机不存在,它会切换到扬声器,如果耳机连接,则不会切换回来:(

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

Har*_*vey 15

这对我有用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
Run Code Online (Sandbox Code Playgroud)

  • 在 Ubuntu Bionic 上,我设置了 ``AutoConnect=true`` 而不是 Disable=Headset (3认同)

Tak*_*kat 3

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

我无法详细说明幕后发生的情况(蓝牙有一些怪癖),但我怀疑我们正在将新设备连接为耳机,而不是通过 dbus 连接为音频AudioSink设备。

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

有时我编写了一个脚本来使用音频配置文件建立蓝牙连接。该脚本包含在一个小型 GUI Python 应用程序中(启动板上的bt-autoconnect或通过我的ppa:takkat-nebuk/takkat),除了其他调整之外,它也确实做到了这一点,但它更像是一种黑客行为,而不是一个明确的解决方案,遗憾的是它确实如此不适用于周围的所有适配器,但它会首先以 A2DP 模式连接我的飞利浦耳机(尽管声音设置仍然声称它是 HFP,但这是另一个问题)。