断音与连接问题

声音断续、卡顿或中断,连接无法建立,或者比特率低于预期。本页总结了此类报告最终查明的原因,便于你在报告之前先排查常见原因,并说明如果都不是,应该提供哪些内容。

目录

  1. 请先检查这些
    1. 1. 关闭这台 PC 上的其他 Bluetooth 适配器
    2. 2. 只给耳机一条连接
    3. 3. 移动适配器的位置
    4. 4. 让 2.4 GHz Wi-Fi 远离链路
    5. 5. 给链路留出余量
    6. 6. 更新 A2DPWB
  2. 解读链路质量
  3. 由耳机决定的事
  4. 连接失败
  5. 报告最终查明的原因
  6. 报告

请先检查这些

Bluetooth 与 Wi-Fi、无线鼠标和键盘、耳麦接收器以及房间里的所有其他 Bluetooth 设备共用 2.4 GHz 频段。USB 适配器的天线很小,耳塞的天线更小,而你的头部还挡在它们与 PC 之间。目前为止大多数“连接不佳”的报告最终都归结为以下原因之一;每一项只需一分钟即可试验。错误报告表单为每一项都设有勾选框,请勾选你已尝试过的项目。

请一次只做一项,并在每项之间试听几分钟:如果断音停止,就找到了原因。

1. 关闭这台 PC 上的其他 Bluetooth 适配器

A2DPWB 通过 USB 适配器串流时,Windows 自身的 Bluetooth(内置适配器)仍在旁边持续发射,两者共用一个频段,而且往往天线区域也相近。它也是耳机的 PC 端应用所连接的地方,这会给耳机增加第二条链路(见下一项)。请在 A2DPWB 运行期间(至少在测试期间)在设备管理器中禁用内置适配器。A2DPWB 检测到另一个活动的适配器时,会在主页显示提示。

第二个活动的适配器,是一位长期测试者指出的导致连接不稳定和编解码器切换问题的两个原因之一。

2. 只给耳机一条连接

双设备(多点)连接让耳机可以同时连接手机和 PC。每条连接都会占用无线时间,有些耳机还会因此提供更少的编解码器、拒绝免提链路(因此没有电量显示),或在另一台设备连接期间为其占用一个编解码器端点。耳机的配套应用也算在内:即使你只用它查看电量或调节均衡器,它也会在手机上或这台 PC 的 Bluetooth 上保持自己的链路。

测试方法:在耳机的应用中关闭双设备连接,关闭手机的 Bluetooth,关闭手机和 PC 上的配套应用,然后再从 A2DPWB 连接。

双设备连接是那位测试者指出的另一个原因;断开配套应用之后,编解码器切换顺畅了许多。曾有一次首次连接被拒绝,原因是耳机仍连接着开启了 LE Audio 的手机;还有多款耳塞在有手机或其应用参与时,向 A2DPWB 提供的编解码器更少或比特率更低。Sony 耳机开启多点连接时不提供 LDAC。

3. 移动适配器的位置

  • 使用 USB 2.0 端口,或一条短的 USB 延长线。USB 3 端口和线缆会在 2.4 GHz 频段辐射噪声,正好是适配器所在的频段。
  • 远离其他无线接收器:游戏鼠标和键盘的接收器、无线耳麦接收器、Wi-Fi 天线。相邻端口上的接收器正是导致这种现象的常见原因。
  • 让耳机能看到适配器。PC 放在桌子下面、你和桌子挡在中间,会损失很多信号。把适配器用 USB 延长线引到桌面上,比其他任何办法都更有效。

一台没有 Wi-Fi 适配器来引导 AFH 的 PC 上,游戏鼠标接收器就在适配器旁边,结果链路只能承载约 750 kbps,适配器把 79 个信道中最多 46 个标记为不良。距适配器一米的耳塞信号仍然很弱,在比特率上限附近足以每隔几分钟就完全中断一次。

4. 让 2.4 GHz Wi-Fi 远离链路

把这台 PC(如有可能,也包括手机和附近的其他设备)切换到 5 或 6 GHz Wi-Fi。如果必须保留 2.4 GHz,A2DPWB 会让适配器避开这台 PC 所连接的信道(AFH,自动)。当 PC 没有 Wi-Fi 适配器、使用有线连接,或所连接的频段与路由器的 2.4 GHz 网络不同时,它看不到该 Wi-Fi:此时请找出路由器的信道(在其管理页面,或用手机上的 Wi-Fi 分析应用),如果信道会跳变就在路由器上固定它,然后在适配器 > 避开 Wi-Fi 信道 > 手动中输入,例如 6 或 11。请参阅链路质量与 AFH。

在繁忙的 2.4 GHz 网络上,LDAC 990 kbps 在 5 分钟内丢失了约 1,700 个数据包;把路由器固定在一个信道并将 AFH 手动设为该信道后,15 分钟内只丢失 33 个。

5. 给链路留出余量

Bluetooth 链路在理想情况下只能承载略高于 1 Mbps 的数据;LDAC 990 kbps、LHDC V5 900 和 1000 kbps 以及高 bitpool 的 SBC XQ 几乎没有留下重传的余地。真无线耳塞还要把音频从一只转发到另一只,这同样占用无线时间,因此即使链路干净,900 kbps 及以上对它们来说也很吃力。

  • 试试 ABR(自适应比特率;LDAC、LHDC V5、aptX Adaptive,SBC 为自适应 bitpool),或降低一级:LDAC 660、LHDC V5 500、SBC XQ bitpool 29 到 36。
  • 检查换用 SBC 或 AAC 后断音是否仍然存在。如果仍然存在,问题就不在比特率。
  • 作为对耳机的检查:把它与手机配对,在手机上设置相同的编解码器和比特率,在同一位置试听。如果在手机上也断音,限制就在耳机一侧。

在一条只能承载 750 kbps 的链路上,500 kbps 以上的任何设置都会断音,而 ABR 零丢包。SBC XQ 的 bitpool 超过 36 时,一款 SBC 能力允许 53 的廉价耳塞就没有声音了。同一款耳塞上,LHDC V5 随机断音,而 LDAC 很稳定。干净的链路确实能承载:一台笔记本电脑的内置适配器以 LDAC 990 kbps 串流 5 分钟,丢失 0 个数据包。

6. 更新 A2DPWB

有几例听起来像无线问题的卡顿,其实是应用本身的问题。2.0.1 在虚拟线缆延迟送达音频时,会以快于实时的速度发送音频,耳机听到的就是一秒声音、一秒静音;断开连接 > 连接之后的流会一直卡顿,直到重新启动应用;在睡眠、长时间会话或多次重新启动之后,过时的 Bluetooth 堆栈会拒绝连接。这些都已在当前版本中修复(更新)。如果更新后问题消失,就无需报告。

诊断 > 链路质量(以及主页上的图表)可以区分问题出在无线、PC 还是应用。请在问题发生时截图,并附在报告中。

看到的现象 含义 指向
信号远低于 0(约 -25 dB 或更低) 耳机的信号到达适配器时,远低于适配器的理想范围。它不是绝对电平:0 为理想值,-30 表示比理想值低 30 dB,因此 -30 仍可播放,但没有余量 无线:距离、你的头部和身体、适配器的摆放位置
发送队列已满,发送前丢弃的数据包持续增加,比特率低于编解码器的比特率 数据包等待无线发送的时间过长;链路此刻无法承载这一比特率 无线或干扰,或比特率过高
使用中的 AFH 信道跳动不定,或在丢包的同时停在 79 适配器根据信道上的错误将其标记为不良;到了 79,它已放弃区分 干扰:Wi-Fi、其他接收器、第二个 Bluetooth 适配器
捕获时丢弃的音频持续增加,主页显示电脑繁忙 PC 没有及时提供音频 PC:负载、捕获设备、虚拟线缆
一切平直为空,却仍有静音或卡顿 链路正常,PC 上也没有丢弃任何数据 应用或耳机的解码器:请附上诊断包报告

接收一侧无法从 PC 上看到。要测量实际到达的内容,可用对端接收器测试让一台 Linux PC 充当耳机。

由耳机决定的事

有些“只给我 400 kbps”或“没有 LDAC”的报告与链路完全无关:耳机会告诉 A2DPWB 它接受哪些编解码器和比特率,A2DPWB 和 Android 一样照此执行。日志行 remote supports ... 显示了耳机提供的内容。

  • Huawei FreeBuds 只有在其 AI Life 应用设置了“优先音质”并关闭多设备连接之后,才会向 PC 提供 LDAC;否则只列出 SBC 和 AAC。自 2.0.2 起,在关闭自动选择并选择 LDAC 时,A2DPWB 会自行请求该模式。
  • LHDC V5 耳机会通告一个最大比特率。一款耳机在其应用的 96 kHz 模式下列出 400 kbps,在 192 kHz 模式下为 1000 kbps。OPPO Enco Free4 无论应用如何设置,都向 PC 列出 400 kbps 和 48 kHz;2.0.2 会通过它们自己的协议请求 Hi-Res,但尚未在真实耳塞上确认。
  • ABR 会把 LHDC V5 保持在 400 kbps 或以下,与 Android 一样。
  • 耳机为另一台设备占用的编解码器,在那台设备连接期间不会出现(耳机同时连接其他设备时缺少编解码器)。

如何查看耳机提供的内容:查看耳机提供的编解码器。

连接失败

主页上的错误会说明发生了什么;连接超时中的表格解释了每条消息。与无线有关的情况:

  • 设备无应答(Page Timeout):设备已关闭、超出范围、首次连接时未进入配对模式,或者适配器仍在使用其 ROM 固件。没有固件的 Realtek 适配器在扫描中找不到任何设备,每次连接都会超时,或者可以正常打开却从不串流;曾有一个固件文件其实是保存下来的网页。适配器页面会显示固件是否已加载。
  • 连接已建立但没有传输任何数据:无线环境问题,或者耳机正忙于另一台设备。请重试,并移动适配器的位置。
  • 身份验证失败,或日志显示 signaling connection failed (0x66):耳机保留了之前配对的密钥,通常是这台 PC 自身的 Windows Bluetooth。(0x67):耳机正被另一台设备占用,例如开启了 LE Audio 的手机。请断开其他设备,在耳机的应用中关闭 LE Audio,让耳机进入配对模式并连接一次;之后的连接会使用保存的密钥。
  • 断开连接后耳机无法连接到手机:2.0.2 在断开连接时会释放链路;如果你通过关闭再打开耳机的方式在 PC 和手机之间切换,请关闭自动重新连接。

报告最终查明的原因

迄今为止所有涉及无线一侧的报告,按最终查明的原因分组。

原因 报告数 示例
环境:无线、摆放位置、另一台设备 约三分之一 相同信道上的 2.4 GHz Wi-Fi、适配器旁边的游戏鼠标接收器、第二个活动的 Bluetooth 适配器、双设备连接和正在运行的配套应用、真无线耳塞上没有余量的比特率、小型耳塞的弱信号、其实是保存下来的网页的固件文件
耳机:它们向 PC 提供的内容 约四分之一 只有在 Huawei 的音质模式下才有 LDAC、LHDC V5 被耳机自身的模式限制在 400 kbps、通过 OPPO 的协议设置 Hi-Res、为手机占用的编解码器
应用:A2DPWB 的错误,均已修复 不到一半 使用虚拟线缆时音频以快于实时的速度发送、断开连接 > 连接之后卡顿、睡眠或多次重新启动之后过时的 Bluetooth 堆栈、断开连接后链路仍被保留、主动发起连接的耳机被误判为密钥错误、隐藏了 LDAC 的编解码器缓存、未被识别的适配器(某款芯片、某个 USB 类、尚未生效的驱动程序绑定)

值得注意的几点:

  • 卡顿和断音大约各占一半,分别来自应用(2.0.1 和最早几个 2.0.2 beta 版本中的时序错误)和环境。两例经过测量的干扰案例呈现相同的图景:发送比特率跌至 550 到 800 kbps,发送队列填满,适配器的信道图变为 79 / 79。
  • 连接问题大多出在应用,而且几乎都在同一条路径上:耳机开机后自行发起连接。Bluetooth 模拟器无法驱动这条路径,因此这些修复依赖于用户的日志。
  • “缺少编解码器”和“比特率卡住”是耳机在决定向 PC 提供什么,通常受其配套应用的控制。
  • 有些问题看起来像无线问题,其实不是:某个型号使用 AAC 时静音(帧格式)、耳机关机后 Windows 输出仍停留在虚拟线缆上、切换编解码器重新连接期间扬声器发出几秒声音、有线耳机也有声音(系统环回的工作方式)。

报告

如果上述检查没有找到原因,请提交错误报告,并勾选你已尝试过的项目。能让无线问题的报告快速得到解决的内容:

  1. 诊断 > 报告问题,将详细日志设为详细(debug),然后重现问题。
  2. 诊断包(诊断包 > 保存…,然后在 GitHub 上报告)。它包含流健康状况记录(发送队列、丢弃的数据包、信号、随时间变化的 AFH 信道)以及失败连接的 HCI 捕获,可以显示数据包在哪里停止了。
  3. 问题发生时的链路质量截图。
  4. 使用 SBC 或 AAC 以及更低的比特率时是否同样发生。
  5. 你对表单中“双设备连接”、“另一个 Bluetooth 适配器”和“Wi-Fi”问题的回答。