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

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

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

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

这对我有用 : 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 

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

我无法详细说明引擎盖下发生的事情(蓝牙有很多怪癖),但我怀疑我们是通过dbus连接新设备作为Headset而不是音频AudioSink设备。

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

有时我写了一个脚本来使用音频配置文件建立蓝牙连接。 这个脚本包含在一个小的GUI Python应用程序中( bt-autoconnect在启动板上或通过我的ppa:takkat-nebuk / takkat ),其中包括其他一些调整,但它更像是一个黑客而不是一个明确的解决方案,而且遗憾的是它不适用于所有适配器,但它会首先在A2DP模式下连接我的飞利浦耳机(即使声音设置仍然声称它是HFP,但这是另一个问题)。