我真的不喜欢这样,就像 Skype 会自动将我的蓝牙配置文件更改为非常低质量的 HSP 配置文件,然后将高质量 A2DP 配置文件静音。
所以我想知道,是否可以删除或禁用 HSP/HFP 配置文件(脉冲音频、bluez),如果可以,该怎么做?
互联网上充满了如何启用 HSP/HFP 的教程,但就我的情况而言,这就是问题所在。
附言:我不使用蓝牙麦克风,因此让它在 A2DP 上运行无关紧要,我知道这很难运行,因此不需要在这方面做额外的工作。
答案1
看看这个答案:https://askubuntu.com/a/1119934/1025239
复制最重要的部分,这只是按照 pulseaudio 开发人员想要的方式禁用此“功能”。
打开(sudo)/etc/pulse/default.pa
并添加auto_switch=false
如下内容:
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy auto_switch=false # <---- !
.endif
只需终止正在运行的实例即可重新启动 pulseaudio:pulseaudio -k
。此后,您可以使用 重新启动它pulseaudio -D
。完成。您仍然可以能切换到 HFP 配置文件,但不再有自动切换。
答案2
我已经研究这个问题很长时间了。事实证明,大多数蓝牙麦克风都不支持 A2DP,因此 Pulse Audio 被配置为每当使用麦克风的应用程序(例如 Skype)连接时,就从 A2DP 切换到 HSP。最后,对我有用的是来自此链接的教程:https://sandalov.org/blog/2146/
- 修改/etc/bluetooth/audio.conf,添加以下内容:
[General] Disable=Headset
- 终止 pulseaudio(它会自动重启)并重新启动蓝牙服务:
pulseaudio -k sudo systemctl restart bluetooth
这将断开您通过蓝牙连接的音频设备,您必须重新连接它。
希望这可以帮助 :)
答案3
对我来说,解决方案如下:
# /etc/pulseaudio/default.pa
ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy auto_switch=false <-- add auto switch
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
load-module module-switch-on-connect <-- add this
.endif
# /etc/bluetooth/main.conf
[General]
Disable=Headset <-- add this
这将禁用从 pulseaudio 自动切换到 hsp 并明确告诉 bluez 禁用 hsp。此外,pulseaudio 将在连接时切换到蓝牙设备。
至少这是我对上述内容的理解。
答案4
要仅禁用特定设备(Ubuntu 20.04 和 22.04),请找到该设备服务的 UUID。您可以在 Blueman 中执行此操作:
也可以通过跑步bluetoothctl info
等方法获得。
接下来,编辑以下内容以从“常规”下的“服务”中删除 UUID。
# For Ubuntu 20.04
sudo vim /var/lib/bluetooth/{{deviceid}}/info
# For Ubuntu 22.04
sudo vim /var/lib/bluetooth/{{controller}}/{{deviceid}}/info
然后重启蓝牙
sudo systemctl restart bluetooth.service