WH-1000XM6 连接 Mac 偶发无声问题排查
问题描述
WH-1000XM6连接MacBook时,会偶尔出现大约半秒没有声音的问题。
这个问题比较奇怪,出现时耳机没有断联,视频画面和进度条也不会停止,只有这一小段声音丢了。所以基本可以排除播放器卡顿,更像是蓝牙音频传输中间出了问题。
耳机买了很久之后我才注意到这个现象,因此也不确定问题是什么时候开始的。在这期间Mac又连接过几台蓝牙键鼠,这一点最后证明还挺关键的。
当时耳机的情况如下:
- 固件版本为3.1.5;
- Sound Connect中设置为稳定连接优先;
- 没有连接其他设备,多点连接关闭;
- Mac的输入设备一直是自带麦克风;
- 播放器和网页视频都出现过。
排查远程控制软件
一开始怀疑是ToDesk或者NoMachine造成的,因为这类软件可能会安装后台服务或者虚拟音频设备。
可以用下面的命令检查相关进程:
1 | |
检查之后发现NoMachine没有运行,但是ToDesk的两个后台服务还在。于是先把ToDesk完全停掉,然后继续使用耳机。
结果没过多久又出现了一次中断,因此基本排除了ToDesk和NoMachine。后来又把ToDesk服务恢复了,耳机问题并没有因此发生明显变化。
排查外接显示器
Mac当时连接了一台DP显示器,所以也怀疑过DP音频、转接器或者显示器本身。
但是在没有连接显示器的时候,同样出现过声音中断。因此显示器可能会影响周围的无线环境,但不是这次问题发生的必要条件。
检查Wi-Fi
蓝牙和2.4 GHz Wi-Fi会共用频段,所以又导出了Wi-Fi信息:
1 | |
当时Mac连接的是5 GHz Wi-Fi,信道为60、带宽40 MHz,RSSI大约-59 dBm,噪声约-91 dBm,信道占用约13%。最近一小时也没有Wi-Fi故障和恢复记录。
从这些数据看,Wi-Fi状态比较正常,也不是常见的2.4 GHz Wi-Fi和蓝牙互相干扰的问题。
导出蓝牙日志
前面的几个方向都没有找到问题,只能等它再次发生,然后记下准确时间导出日志。
中断发生后,可以导出最近十分钟的bluetoothd和coreaudiod日志:
1 | |
再从日志里筛选几个比较有用的关键词:
1 | |
这次终于看到了比较明确的异常。
声音中断时,CoreAudio仍然在正常输出,说明播放器和系统音频没有停止。耳机的RSSI大约是-41 dBm,信号也很好。
但是在大约94毫秒内,日志连续出现了5次:
1 | |
紧接着的一秒里,蓝牙重传率达到了19.6%,并且出现了10次同步超时。A2DP packet flushed说明已经进入队列的音频包最终没有及时发出去,被蓝牙芯片丢掉了。这个现象和实际听到的半秒无声基本能对应上。
发现后台一直在连接四台键鼠
在同一段日志里,还发现bluetoothd一直在尝试自动连接四台已经配对的设备:
- MX Keys Mini;
- Lift;
- AULA F75;
- MCHOSE G3。
这些都是平时会用的键鼠,但是出现问题时没有连接到Mac,有的没有开机,有的可能切换到了其他连接通道。
日志里的自动连接扫描已经持续了很长时间,并且一直显示有4台设备等待连接。于是先在Mac的蓝牙设置中忽略这四台设备,只保留WH-1000XM6,看看问题会不会继续出现。
忽略键鼠后的测试
忽略四台键鼠后,连续使用了22分42秒,没有再听到声音中断。
随后导出的日志中:
Starting auto connection为0;A2DP packet flushed为0;- 没有再出现可以对应到声音中断的丢包。
不过有一个比较奇怪的地方:普通重传率并没有降低。
忽略键鼠之前,89秒事件窗口的平均重传率约为6.19%;忽略以后,整段日志的平均重传率反而约为7.04%。所以不能简单理解成这些键鼠让耳机信号变差了。
目前比较合理的猜测是,Mac一直在后台扫描并尝试连接这四台设备。当自动重连刚好碰上A2DP重传高峰时,蓝牙芯片没有及时处理完队列,最后清掉了一小段音频包。
当然这还不能完全确定。现在只能说明忽略四台设备以后,后台自动连接和A2DP packet flushed同时消失了。究竟是其中某一台设备的问题,还是四台设备一起等待连接才会触发,还没有逐台测试。
键鼠怎么继续使用
这些键鼠平时都要使用,一直保持忽略肯定不是办法。
MX Keys Mini和Lift都支持Logi Bolt,也可以共用一个Bolt接收器。我的Bolt是USB-A接口,在MacBook Air上通过USB-C转接头或者扩展坞连接即可。
准备采用下面的连接方式:
1 | |
这样两台罗技键鼠还可以正常使用,同时不会留在Mac的蓝牙列表里反复等待连接。
AULA F75和MCHOSE G3都支持蓝牙、2.4 GHz接收器和有线模式。如果只是偶尔使用,可以先用2.4 GHz接收器或者有线。后面如果还想用蓝牙,再一台一台配回Mac,每加入一台使用一段时间,这样如果问题重新出现,至少能知道是哪一步开始的。
另外,Bolt和其他2.4 GHz接收器最好不要紧贴DP线、显示器背板或者高速USB 3设备。如果键鼠本身出现卡顿,可以用短USB延长线把接收器放到离这些设备远一点的位置。
补充
目前能够确定的是,忽略四台蓝牙键鼠之后,耳机没有再出现声音中断,日志里的后台自动连接和A2DP包丢弃也都消失了。
但是测试时间还不算特别长,也没有逐台重新连接测试,所以暂时不能确定到底是哪一台设备导致的。后续准备先把MX Keys Mini和Lift迁移到Bolt,再继续观察。如果声音中断再次出现,再回来补充。