You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04.2 LTS下连接AirPods后自动切换至HFP协议的实现方法及音频配置重置咨询

Ubuntu 22.04.2 LTS下连接AirPods后自动切换至HFP协议的实现方法及音频配置重置咨询

兄弟,我太懂你这种每次开会前手动切AirPods音频模式的麻烦了,尤其是那个切换UI还时不时抽风,简直耽误事!结合你提到的情况,给你整理了两种解决办法,还有重置配置的步骤,顺便说说为啥同事没问题~

一、实现AirPods连接时自动切换到HFP协议

方法1:用udev规则自动触发切换

这是最省心的方法,让系统检测到AirPods连接时自动切换协议:

  • 先获取你的AirPods蓝牙MAC地址,终端输入:
    bluetoothctl devices
    找到你的AirPods条目,复制那串类似AA:BB:CC:DD:EE:FF的地址
  • 创建udev规则文件,编辑:
    sudo nano /etc/udev/rules.d/99-airpods-hfp.rules
    粘贴以下内容(把MAC换成你自己的,注意把冒号换成下划线):
    SUBSYSTEM=="bluetooth", ACTION=="add", ATTR{address}=="AA:BB:CC:DD:EE:FF", RUN+="/usr/bin/pactl set-card-profile bluez_card.AA_BB_CC_DD_EE_FF headset_head_unit"
    
  • 重新加载udev规则生效:
    sudo udevadm control --reload-rules
    sudo udevadm trigger

下次连接AirPods时,系统就会自动切到HFP模式,会议软件里就能直接选AirPods麦克风了。

方法2:用脚本监听蓝牙连接状态

如果udev规则没生效,可以试试这个脚本方案:

  • 创建脚本文件:
    nano ~/.config/airpods-hfp-switch.sh
    粘贴以下内容(替换成你的AirPods MAC):
    #!/bin/bash
    AIRPODS_MAC="AA:BB:CC:DD:EE:FF"
    
    while true; do
        if bluetoothctl info "$AIRPODS_MAC" | grep -q "Connected: yes"; then
            pactl set-card-profile bluez_card.${AIRPODS_MAC//:/_} headset_head_unit
            sleep 10  # 避免短时间内重复触发
        fi
        sleep 2
    done
    
  • 给脚本加执行权限:
    chmod +x ~/.config/airpods-hfp-switch.sh
  • 设置开机自启:
    打开系统的「Startup Applications」,添加新启动项,命令填bash ~/.config/airpods-hfp-switch.sh,名字随便取比如「AirPods HFP自动切换」

二、重置音频配置回到系统默认状态

既然你怀疑是之前20.04的旧配置搞的鬼,那直接重置回22.04的默认状态试试:

  • 先停止Pulseaudio服务:
    pulseaudio -k
  • 备份并删除旧的音频/蓝牙配置文件:
    mv ~/.config/pulse ~/.config/pulse.bak
    mv ~/.config/bluetooth ~/.config/bluetooth.bak(如果这个文件夹存在的话)
  • 重启Pulseaudio和蓝牙服务:
    pulseaudio --start
    sudo systemctl restart bluetooth.service

重启电脑后,所有音频相关的配置就回到全新安装的状态了,这时候再连接AirPods,大概率系统会自动处理HFP模式的切换。

为啥同事没有这个问题?

同事用同版本Ubuntu却没麻烦,基本就是因为他们是全新安装,没有遗留旧版本的配置文件。你是从20.04升级过来的,之前为了启用AirPods麦克风修改的配置(比如自定义的Pulseaudio规则、蓝牙协议优先级设置)可能残留下来,干扰了22.04的默认逻辑。重置配置后,你的系统状态就和他们的一致了。

备注:内容来源于stack exchange,提问作者Muhammad Gelbana

火山引擎 最新活动