蓝牙耳机 HSP/HFP 声音不工作但麦克风

蓝牙耳机 HSP/HFP 声音不工作但麦克风

与许多其他人一样,我也遇到了蓝牙耳机(SONY WH-H900N)的问题。我可以使用 A2DP 完美连接,甚至 LDAC 也可以正常工作,因为pulseaudio-模块-bt。然而,当我恢复质量并使用耳机作为接收器和源时,我开始听到一些噪音(我认为这是这种低质量编解码器的预期结果)但没有声音传出。

我的问题与其他一些耳机问题不同,原因有二:

  1. 它曾经可以工作(最后一次测试大约是在六个月前)。
  2. 麦克风工作正常,只是没有声音输出。

系统信息:

bram@bram-Zbook~$ inxi-Fxz
系统: 内核:5.8.0-48-通用 x86_64位:64编译器:不适用桌面:Gnome 3.36.7 
           发行版:Ubuntu 20.04.2 LTS(焦点窝) 
机器的种类:笔记本电脑系统:生命值产品:HP ZBook Studio G3五:不适用序列号:<过滤器> 
           主板:生命值模型:80D4五:KBC 版本 11.75序列号:<过滤器>UEFI:生命值五:N82 版本 01.52日期:2020 年 10 月 28 日 
电池:ID-1:电池0收费:47.8 瓦时健康)状况:49.1/64.0 瓦时 (77%)模型:惠普小学地位:未知 
CPU:拓扑:四核模型:英特尔酷睿 i7-6700HQ位:64类型:甲基丙烯酸甲酯拱:Skylake-S修订:3二级缓存:6144 KB 
           标志:avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmxbogomips:41599 
           速度:3262 兆赫最小/最大:800/3500 MHz核心速度 (MHz): 1:31882:32513:32914:34475:32776:31517:3251 
           8:3242 
图形:设备-1:英特尔高清显卡 530小贩:惠普司机:i915五:核心公交车编号:00:02.0 
           设备-2:NVIDIA GM107GLM [Quadro M1000M]小贩:惠普司机:英伟达五:450.102.04公交车编号:01:00.0 
           展示:x11服务器:X.Org 1.20.9司机:模式设置,nvidia卸载:fbdev,新,vesa 
           解决:1920x1080~60Hz, 2560x1440~60Hz 
           OpenGL的: 渲染器:Mesa 英特尔高清显卡 530 (SKL GT2)五:4.6 梅萨 20.2.6直接渲染:是的 
音频:设备-1:英特尔 100 系列/C230 系列高清音频小贩:惠普司机:snd_hda_intel五:核心 
           公交车编号:00:1f.3 
           设备-2:NVIDIA GM107 高清晰度音频 [GeForce 940MX]小贩:惠普司机:snd_hda_intel 
           五:核心公交车编号:01:00.1 
           设备-3:Conexant Systems(罗克韦尔)HP Dock 音频类型:USB司机:hid-通用,snd-usb 音频,usbhid 
           公交车编号:3-2:3 
           声音服务器:阿尔萨斯大学五:k5.8.0-48-通用 
网络:设备 1:英特尔以太网 I219-LM小贩:惠普司机:e1000e五:3.2.6-k港口:efa0公交车编号:00:1f.6 
           如果:enp0s31f6状态:向下苹果:<过滤器> 
           设备-2:英特尔无线 8260司机:无线上网五:核心港口:4000公交车编号:03:00.0 
           如果:wlp3s0状态:向上苹果:<过滤器> 
           设备-3:Broadcom 及其子公司 NetXtreme BCM57762 千兆以太网 PCIe司机:TG3五:核心港口:4000 
           公交车编号:3f:00.0 
           如果:enp63s0状态:向上速度:1000 Mbps双工:满的苹果:<过滤器> 
驱动器: 本地存储: 全部的:2.29 TiB用过的:284.32 GiB(12.2%) 
           ID-1:/dev/nvme0n1小贩:三星模型:MZVPV256HDGL-00000尺寸:238.47 GiB 
           ID-2:/dev/sda小贩:闪迪模型:SD7TN3Q-256G-1006尺寸:238.47 GiB 
           ID-3:/dev/sdb类型:USB小贩:西部数据模型:WD My Passport 2626尺寸:1.82 钛合金 
分区:ID-1:/尺寸:226.34 GiB用过的:85.37 GiB(37.7%)文件系统(FS):ext4开发:/dev/nvme0n1p3 
           ID-2:/家尺寸:233.73 GiB用过的:197.74 GiB(84.6%)文件系统(FS):ext4开发:/dev/sda1 
           ID-3:交换-1尺寸:7.45 GiB用过的:6.2 MB(0.1%)文件系统(FS):交换开发:/dev/nvme0n1p2 
传感器:系统温度: 中央处理器:60.0 摄氏度主板:52.0摄氏度 
           风扇转速(RPM):不适用 
信息:流程:365正常运行时间:19 分钟记忆:7.56 GiB用过的:3.51 GiB(46.4%)在里面:systemd运行级别:5编译器: 海湾合作委员会:9.3.0 

蓝牙适配器是网络设备 2:Intel Wireless 8260,带有名为 iwlwifi 的驱动程序。运行时inxi -Fxzpacmd list-sinks耳机通过 A2DP 连接。

bram@bram-Zbook~$ pacmd 列表卡
有 4 张卡可用。

    ------ 已移除设备 0 至 2 ------
    
    索引:3
    名称:<bluez_card.04_5D_4B_66_7E_42>
    驱动程序:<module-bluez5-device.c>
    所有者模块:29
    特性:
        设备描述 = “LE_WH-H900N”
        设备.string =“04:5D:4B:66:7E:42”
        设备.api =“bluez”
        设备.class =“声音”
        设备.总线 = “蓝牙”
        device.form_factor =“耳机”
        bluez.path =“/org/bluez/hci0/dev_04_5D_4B_66_7E_42”
        bluez.class = “0x240404”
        bluez.别名 = “LE_WH-H900N”
        device.icon_name =“音频耳机蓝牙”
        设备.intended_roles =“电话”
    简介:
        earphone_head_unit:耳机主机(HSP/HFP)(优先级 30,可用:未知)
        a2dp_sink_sbc:高保真播放(A2DP Sink:SBC)(优先级 40,可用:未知)
        a2dp_sink_aac:高保真播放(A2DP Sink:AAC)(优先级 40,可用:未知)
        a2dp_sink_aptx:高保真播放(A2DP Sink:aptX)(优先级 40,可用:未知)
        a2dp_sink_aptx_hd:高保真播放(A2DP Sink:aptX HD)(优先级 40,可用:未知)
        a2dp_sink_ldac:高保真播放(A2DP Sink:LDAC)(优先级 40,可用:是)
        off:关闭(优先级0,可用:是)
    活动配置文件:<a2dp_sink_ldac>
    接收器:
        bluez_sink.04_5D_4B_66_7E_42.a2dp_sink/#11: LE_WH-H900N
    来源:
        bluez_sink.04_5D_4B_66_7E_42.a2dp_sink.monitor/#16: LE_WH-H900N 的监视器
    端口:
        耳机输出:耳机(优先级 0,延迟偏移 0 微秒,可用:是)
            特性:
                
        耳机输入:耳机(优先级 0,延迟偏移 0 微秒,可用:未知)
            特性:

bram@bram-Zbook~$ pacmd 列表接收器

  ------ 删除索引 1 到 4(然后跳转到 17)------

 * 索引:17
    名称:<bluez_sink.04_5D_4B_66_7E_42.a2dp_sink>
    驱动程序:<module-bluez5-device.c>
    标志:硬件 DECIBEL_VOLUME LATENCY
    状态:正在运行
    暂停原因:(无)
    优先级:9050
    音量:前左:35863 / 55% / -15,71 dB,前右:35863 / 55% / -15,71 dB
            余额 0,00
    基本音量:65536 / 100% / 0,00 dB
    音量步数:65537
    静音:否
    当前延迟:33.13 毫秒
    最大请求:2 KiB
    最大倒退:0 KiB
    监控源:25
    样品规格:float32le 2ch 44100Hz
    通道图:前左、前右
                 立体声
    使用者:1
    链接数:1
    固定延迟:30,80 毫秒
    卡:4 <bluez_card.04_5D_4B_66_7E_42>
    模块:31
    特性:
        蓝牙.协议 = “a2dp_sink”
        蓝牙.a2dp_codec = “LDAC”
        设备描述 = “LE_WH-H900N”
        设备.string =“04:5D:4B:66:7E:42”
        设备.api =“bluez”
        设备.class =“声音”
        设备.总线 = “蓝牙”
        device.form_factor =“耳机”
        bluez.path =“/org/bluez/hci0/dev_04_5D_4B_66_7E_42”
        bluez.class = “0x240404”
        bluez.别名 = “LE_WH-H900N”
        device.icon_name =“音频耳机蓝牙”
        设备.intended_roles =“电话”
    端口:
        耳机输出:耳机(优先级 0,延迟偏移 0 微秒,可用:是)
            特性:
                
    活动端口:<耳机输出>

现在切换到 HSP/HFP 后:

(根据)bram@bram-Zbook~$ pacmd 列表卡
有 4 张卡可用。

    ------ 已删除设备 0、1 和 2 ------

    索引:3
    名称:<bluez_card.04_5D_4B_66_7E_42>
    驱动程序:<module-bluez5-device.c>
    所有者模块:29
    特性:
        设备描述 = “LE_WH-H900N”
        设备.string =“04:5D:4B:66:7E:42”
        设备.api =“bluez”
        设备.class =“声音”
        设备.总线 = “蓝牙”
        device.form_factor =“耳机”
        bluez.path =“/org/bluez/hci0/dev_04_5D_4B_66_7E_42”
        bluez.class = “0x240404”
        bluez.别名 = “LE_WH-H900N”
        device.icon_name =“音频耳机蓝牙”
        设备.intended_roles =“电话”
    简介:
        earphone_head_unit:耳机主机(HSP/HFP)(优先级 30,可用:是)
        a2dp_sink_sbc:高保真播放(A2DP Sink:SBC)(优先级 40,可用:未知)
        a2dp_sink_aac:高保真播放(A2DP Sink:AAC)(优先级 40,可用:未知)
        a2dp_sink_aptx:高保真播放(A2DP Sink:aptX)(优先级 40,可用:未知)
        a2dp_sink_aptx_hd:高保真播放(A2DP Sink:aptX HD)(优先级 40,可用:未知)
        a2dp_sink_ldac:高保真播放(A2DP Sink:LDAC)(优先级 40,可用:未知)
        off:关闭(优先级0,可用:是)
    活动配置文件:<headset_head_unit>
    接收器:
        bluez_sink.04_5D_4B_66_7E_42.headset_head_unit/#14: LE_WH-H900N
    来源:
        bluez_sink.04_5D_4B_66_7E_42.headset_head_unit.monitor/#21:LE_WH-H900N 的监视器
        bluez_source.04_5D_4B_66_7E_42.headset_head_unit/#22: LE_WH-H900N
    端口:
        耳机输出:耳机(优先级 0,延迟偏移 0 微秒,可用:是)
            特性:
                
        耳机输入:耳机(优先级 0,延迟偏移 0 微秒,可用:是)
            特性:

bram@bram-Zbook~$ pacmd 列表接收器

  ------ 删除索引 1 到 4(然后跳转到 14)------

  * 索引:14
    名称:<bluez_sink.04_5D_4B_66_7E_42.headset_head_unit>
    驱动程序:<module-bluez5-device.c>
    标志:硬件 HW_VOLUME_CTRL 延迟
    状态:正在运行
    暂停原因:(无)
    优先级:9050
    音量:单声道:65136 / 99%
            余额 0,00
    基础音量:65536 / 100%
    音量步进:16
    静音:否
    当前延迟:36,49 毫秒
    最大请求:0 KiB
    最大倒退:0 KiB
    监控源:21
    样品规格:s16le 1ch 8000Hz
    频道图:单声道
                 单核细胞增多症
    使用者:1
    链接数:1
    固定延迟:31,00 毫秒
    卡:3 <bluez_card.04_5D_4B_66_7E_42>
    模块:29
    特性:
        蓝牙.协议 = “耳机头单元”
        设备.intended_roles =“电话”
        设备描述 = “LE_WH-H900N”
        设备.string =“04:5D:4B:66:7E:42”
        设备.api =“bluez”
        设备.class =“声音”
        设备.总线 = “蓝牙”
        device.form_factor =“耳机”
        bluez.path =“/org/bluez/hci0/dev_04_5D_4B_66_7E_42”
        bluez.class = “0x240404”
        bluez.别名 = “LE_WH-H900N”
        device.icon_name =“音频耳机蓝牙”
    端口:
        耳机输出:耳机(优先级 0,延迟偏移 0 微秒,可用:是)
            特性:
                
    活动端口:<耳机输出>

在 Gnome 控制面板中看到麦克风拾取了一些声音后,我打电话给一位朋友,他可以确认麦克风工作正常。令我惊讶的是,在这个声音控制面板中,输出设备强度的颜色变成了蓝色,并且停止了移动。

Gnome 声音控制面板

到目前为止,我已经尝试过各种方法blueman,但pavucontrol都无济于事。

编辑1:Journalctl

我在 journalctl 中监控了配置文件之间的切换操作。结果如下:

bram@bram-Zbook~$ journalctl -f
-- 日志开始于 2021-03-08 星期一 02:01:23 +03。--
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):DFP-1:最大像素时钟 165.0 MHz
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):DFP-2:已断开连接
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):DFP-2:内部 DisplayPort
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):DFP-2:最大像素时钟 960.0 MHz
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):DFP-3:已断开连接
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):DFP-3:内部 DisplayPort
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):DFP-3:最大像素时钟频率 960.0 MHz
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]:(--)NVIDIA(GPU-0):
mrt 31 22:23:13 bram-Zbook rtkit-daemon[1192]: 监督 2 个用户的 3 个进程的 7 个线程。
mrt 31 22:23:13 bram-Zbook rtkit-daemon[1192]: 成功创建优先级为 5 的由‘1000’RT 拥有的进程 1900 的线程 13653。
mrt 31 22:23:13 bram-Zbook rtkit-daemon[1192]: 监督 2 个用户的 3 个进程的 8 个线程。
mrt 31 22:23:13 bram-Zbook gsd-media-keys[2356]:无法获取默认接收器
mrt 31 22:23:13 bram-Zbook gsd-media-keys[2356]:无法获取默认源
mrt 31 22:23:13 bram-Zbook内核:蓝牙:hci0:未知连接句柄 0 的 SCO 数据包
mrt 31 22:23:13 bram-Zbook内核:蓝牙:hci0:未知连接句柄 0 的 SCO 数据包
mrt 31 22:23:13 bram-Zbook内核:蓝牙:hci0:未知连接句柄 0 的 SCO 数据包
mrt 31 22:23:13 bram-Zbook内核:蓝牙:hci0:未知连接句柄 0 的 SCO 数据包
mrt 31 22:23:20 bram-Zbook rtkit-daemon[1192]: 监督 2 个用户的 3 个进程的 7 个线程。
mrt 31 22:23:20 bram-Zbook内核:蓝牙:hci0:未知连接句柄 257 的 SCO 数据包
mrt 31 22:23:20 bram-Zbook rtkit-daemon[1192]: 成功创建优先级为 5 的由“1000”RT 拥有的进程 1900 的线程 13656。
mrt 31 22:23:20 bram-Zbook rtkit-daemon[1192]: 监督 2 个用户的 3 个进程的 8 个线程。
mrt 31 22:23:20 bram-Zbook gsd-media-keys[2356]:无法获取默认接收器
mrt 31 22:23:20 bram-Zbook gsd-media-keys[2356]:无法获取默认源
  • mrt 31 22:23:13 -> 从 A2DP 更改为 HSP/HFP(无声音但音频正常)
  • mrt 31 22:23:20 -> 从 HSP/HFP 改回 A2DP(一切恢复正常)

显然有一个错误:Bluetooth: hci0: SCO packet for unknown connection handle 0这似乎是这里讨论。但我不确定这是什么意思。此外,当返回到正常运行的 A2DP 时也会出现类似的错误Bluetooth: hci0: SCO packet for unknown connection handle 257。但这只出现过一次。

编辑 2:声音测试

受此问题的启发,我进行了以下测试,该测试自动将耳机切换到 HSP/HFP 模式,但仍然没有声音。那里的用户发现他遇到了蓝牙驱动程序问题,遗憾的是他没有解释他是如何解决这个问题的。他也没有实际显示 arecord 测试的输出。

bram@bram-Zbook~$ arecord --channels=1 --format=S16_LE --rate=8000 --duration=6 --verbose --dump-hw-params --device=default voice.wav
Opname WAVE 'voice.wav' :有符号 16 位 Little Endian,频率 8000 Hz,单声道
设备“默认”的硬件参数:
:--------------------
访问:RW_INTERLEAVED
格式:U8 S16_LE S16_BE S24_LE S24_BE S32_LE S32_BE FLOAT_LE FLOAT_BE MU_LAW A_LAW S24_3LE S24_3BE
子格式:STD
样本位:[8 32]
帧位:[8 1024]
频道:[1 32]
评分:[1 384000]
期间:(2 4294967295)
PERIOD_SIZE:[1 1398102]
PERIOD_BYTES:[128 1398102]
期限:[3 1024]
缓冲时间:(7 4294967295)
缓冲区大小:[3 4194304]
缓冲区字节数:[384 4194304]
TICK_TIME: 全部
:--------------------
ALSA <-> PulseAudio PCM I/O 插件
其设置如下:
  流:捕获
  访问:RW_INTERLEAVED
  格式 :S16_LE
  子格式:STD
  通道:1
  价格:8000
  准确率:8000(8000/1)
  毫秒位数:16
  缓冲区大小:4000
  period_size :1000
  period_time :125000
  tstamp_mode :无
  tstamp_type : GETTIMEOFDAY
  period_step : 1
  最小可用量:1000
  period_event :0
  起始阈值:1
  停止阈值:4000
  沉默阈值: 0
  沉默大小:0
  边界:9007199254740992000

答案1

是的,我修复了它。我去清理了所有音频和蓝牙包。上次尝试时我可能忘记了其中一个包。我运行了以下命令。

sudo apt-get update
sudo apt-get purge bluez libldac pulseaudio-modules-bt  # Remove packages
sudo apt-get autoremove  # Cleanup
sudo apt-get reinstall -y libfdk-aac-dev libavcodec-dev libpulse-dev libdbus-1-dev libsbc-dev libltdl-dev libbluetooth-dev  # Renistall as some of these cannot be purged
sudo apt-get install bluez libldac pulseaudio-modules-bt
sudo reboot  # Might not be nessecary

我以为这会重置我的音频配置文件,但事实并非如此。在我的脉冲配置文件中,我仍然发现我过去所做的编辑。这些是我手动删除的:

sudo gedit /etc/pulse/default.pa
pulseaudio -k

pulseaudio-modules-bt在这里我遵循可用的配置步骤这里

之后,令我惊讶的是,一切都成功了。我的目标是将所有设置重置为默认设置。之前的命令没有实现这一点,尽管我的问题现在已经解决了。

pulseaudio根据问题的答案删除您的个人设置这里,可以运行:

sudo apt-cache pkgnames pulse |xargs -n 1 sudo apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall

但我不确定,也没有测试过,因为我不想改变我现在的工作配置。有人能确认这是否是重置脉冲配置的正确方法吗?什么命令可以对所有与蓝牙/音频设置相关的包执行此操作?

相关内容