自从我升级到 Kubuntu 20.04 以来,我遇到了以下问题:当我连接 USB 耳机时,它会自动配置为 A2DP 配置文件,而我需要在 HSP/HFP 配置文件中使用它才能拨打电话。从 A2DP 到 HSP/HFP 配置文件的自动切换不适用于我使用的程序,无论是默认选项auto_switch=1
还是module-bluetooth-policy
:auto_switch=2
主要问题是我使用的程序是林峰,需要在启动时(音频启动之前)就存在音频接收器,以便可以在应用程序设置中选择输入和输出。因此,每次打开它之前,我都必须将音频系统设置中的耳机配置文件从 A2DP 更改为 HSP/HFP林峰。
因此,经过深入调查(这里和其他网站上描述了许多类似的问题)我最终得到了以下命令:
pactl set-card-profile <my_card_name> headset_head_unit
从命令行运行时可以正常工作。但是,当我将其添加到/etc/pulse/default.pa
以下内容时:
.ifexists <my_card_name>
pactl set-card-profile <my_card_name> headset_head_unit
.endif
它不起作用,可能是因为该文件是在 PulseAudio 服务器启动时解析和运行的,这太早了。因此,我需要在耳机插入后立即执行该命令。可能需要 UDEV 规则,但这超出了我的技能范围。
或者,通过某种方式改变 PulseAudio 中的配置文件优先级也可以在没有任何 UDEV 规则的情况下完成该操作;pactl list
显示(从意大利语翻译):
Card #3
Name: <my_card_name>
Driver: module-bluez5-device.c
Owning module: 24
Properties:
device.description = "Mpow M5"
device.string = "<MAC address>"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci0/dev_<MAC address>"
bluez.class = "0x240404"
bluez.alias = "Mpow M5"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
Profiles:
headset_head_unit: Headset head unit (HSP/HFP) (sink: 1, sources: 1, priority: 30, available: yes)
a2dp_sink: High-fidelity playback (sink A2DP) (sink: 1, sources: 0, priority: 40, available: yes)
off: Off (sink: 0, sources: 0, priority: 0, available: yes)
Active profile: headset_head_unit
Ports:
headset-output: Headphones with microphone (priority: 0, latency offset: 0 usec, available)
Profiles: headset_head_unit, a2dp_sink
headset-input: Headphones with microphone (priority: 0, latency offset: 0 usec, available)
Profiles: headset_head_unit
也许,如果我可以将其更改priority: 30
为(比如说)priority: 50
,我可以让 PulseAudio 优先选择 HSP/HFP 配置文件而不是 A2DP。但是,我在 PulseAudio 文档或网络上找不到有关如何更改该值的任何提示。