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


11

我的蓝牙耳机(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中强制使用默认值。而且使用列出的名称似乎也不起作用-如果没有耳机,它将切换到扬声器,并且如果耳机已连接:(

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

Answers:


8

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

1
备注:由于行“ .ifexists module-bluetooth-discover.so”已经存在,因此注释“添加此”很重要。我一开始尝试将最后四行全部加起来,但没有用。仅在正确的位置添加一行。
FabianRöling18年

2
在Ubuntu Bionic上我设置AutoConnect=true而不是Disable = Headset
develCuy

请注意,在PulseAudio版本11之后,auto_switch已转换为整数,因此根据所需的自动切换功能,它需要0、1、2之类的值:freedesktop.org/wiki/Software/PulseAudio/Notes/11.0
mitsos1os

2

不仅是在重新启动之后,而且在断开并重新连接同时具有HSP和A2DP配置文件功能的设备之后,Bluez始终以HSP(头)模式将其连接。

我无法详细说出到底发生了什么(蓝牙有很多奇怪之处),但我怀疑我们是通过dbus 将新设备连接为耳机而不是音频AudioSink设备。

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

有时我写了一个脚本,使用“ 音频”配置文件建立蓝牙连接。这个脚本包含在一个小的GUI Python应用程序(启动板中的bt-autoconnect或通过我的ppa:takkat-nebuk / takkat)中,该脚本可以完全做到这一点,但它更像是一个hack,而不是一个确定的解决方案,可惜它确实不能与周围的所有适配器一起使用,但是它将首先以A2DP模式连接我的Philips耳机(即使声音设置仍然声称它是HFP,但这是另一个问题)。


感谢您的输入Takkat ...我想我受到了限制,这将是一个手动过程:(
徽标
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.