蓝牙耳机自动连接,但 PulseAudio Ubuntu 20.04 未将其识别为声卡

蓝牙耳机自动连接,但 PulseAudio Ubuntu 20.04 未将其识别为声卡

问题: 当我的蓝牙耳机(auvisio ZX-3182)自动连接到我的 Ubuntu 20.04 时,蓝牙守护进程会确认连接,

~$ hcitool con
Connections:
    > ACL 76:XX:XX:XX:XX:75 handle 256 state 1 lm MASTER

但是 PulseAudio (15.0) 不会自动将连接的蓝牙设备识别为声卡

~$ pactl list sinks short
0   alsa_output.pci-0000_00_1f.3.analog-stereo  module-alsa-card.c  s16le 2ch 48000Hz   RUNNING

~$ pacmd list-cards
1 card(s) available.
    index: 0
    name: <alsa_card.pci-0000_00_1f.3>
    driver: <module-alsa-card.c>

尽管耳机具有声卡的功能:

~$ hcitool info 76:XX:XX:XX:XX:75
Requesting information ...
    BD Address:  76:XX:XX:XX:XX:75
    Device Name: ZX-3182
    LMP Version: 5.1 (0xa) LMP Subversion: 0x22bb
    Manufacturer: not assigned (1494)
    Features page 0: 0xbf 0xfe 0x8d 0xfa 0xd8 0x3d 0x79 0x83
        <3-slot packets> <5-slot packets> <encryption> <slot offset> 
        <timing accuracy> <role switch> <sniff mode> <RSSI> 
        <channel quality> <SCO link> <HV2 packets> <HV3 packets> 
        <u-law log> <A-law log> <CVSD> <power control> 
        <transparent SCO> <broadcast encrypt> <EDR ACL 2 Mbps> 
        <enhanced iscan> <interlaced iscan> <interlaced pscan> 
        <inquiry with RSSI> <extended SCO> <AFH cap. slave> 
        <AFH class. slave> <LE support> <3-slot EDR ACL> 
        <5-slot EDR ACL> <pause encryption> <AFH cap. master> 
        <AFH class. master> <EDR eSCO 2 Mbps> <extended inquiry> 
        <simple pairing> <encapsulated PDU> <err. data report> 
        <non-flush flag> <LSTO> <inquiry TX power> <extended features> 
    Features page 1: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    Features page 2: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

有效的方法: 当我手动连接蓝牙耳机时,PulseAudio 可以正确识别耳机,我可以将其用作 A2DP 耳机以及 HFS/HPS 双模耳机+耳机。只有当耳机自动连接时,PulseAudio 才无法识别它。

日志内容如下: 什么都没有,没有错误消息。我查看了

  • ~$ tail /var/log/syslog:无相关输出
  • ~$ systemctl --user status pulseaudio:无相关输出
  • ~$ dmesg | tail
    [ 6751.711444] perf: interrupt took too long (3202 > 3167), lowering kernel.perf_event_max_sample_rate to 62250
    [ 6853.470790] input: ZX-3182 (AVRCP) as /devices/virtual/input/inputXX

问题:

  • 有人知道这种现象吗,即 PulseAudio 无法识别自动连接的蓝牙设备?
  • 有人能提示在哪里可以找到更接近实际错误的日志消息吗?
  • 我能找出哪些进程正在使用蓝牙连接吗?也许另一个进程在 pulseaudio 获取蓝牙连接之前就“捕获”了它?

我已经尝试过的:

还有其他想法吗?谢谢你的帮助。

答案1

我很长时间以来都遇到同样的问题,今天才能够(某种程度上)解决这个问题:

信任 blueman 中的蓝牙耳机(或者无论您如何管理蓝牙设备)都会有所帮助。

但是,自动连接时音量现在非常低 - 尽管 pulseaudio 显示的音量与手动连接时相同。

答案2

事实证明,这种行为因耳机而异。后来我尝试了几款不同的耳机,有些能成功自动连接并发出声音,有些则不能。所以,它是否有效似乎取决于各个型号。

我使用的一个解决方法是编写一个小脚本sudo nano /opt/bin/headset-reconnect.sh

#!/bin/bash

bluetoothctl disconnect $1
bluetoothctl connect $1

使其可通过以下方式执行sudo chmod +x /opt/bin/headset-reconnect.sh,并最终在设置->键盘->键盘快捷键->自定义键盘快捷键下添加自定义键盘快捷键,该快捷键将/usr/bin/headset-reconnect xx:xx:xx:xx:xx:xx使用我的耳机的蓝牙 mac 地址进行调用。

使用此解决方法,我只需要将耳机戴到耳朵里后按下定义的键盘快捷键即可连接耳机。

虽然不完美,但至少是一种解决方案。

相关内容