【译论】为什么蓝牙仍然如此不可靠?
我从未研究过 Bluetooth 协议栈,对它的工作原理也只有非常高层次的了解。但无论硬件、操作系统和使用情况如何,Bluetooth 的可靠性都比 WiFi 和其他无线协议低很多,我不明白这是为什么。
有些事情令人惊讶:
1.同一制造商生产的设备不能互相看到对方
2.蓝牙音频无缘无故变得不流畅
3.我从未见过 Bluetooth 能在 Windows 上正常工作,即使是在 2024 年。我想不出任何一个能将 Bluetooth 设备连接到 Windows 电脑的例子。
4. Bluetooth 音频对我的身体移动很敏感,例如,当我以特定的步伐行走时,蓝牙耳机会持续掉线。
问题的主要根源是 Bluetooth 使用的频率范围吗?是硬件问题,还是功率太低的原因?为什么 25 年过去了,我们还不能让它稳定工作?
本文文字及图片出自 Ask HN: Why is Bluetooth still so unreliable?
你也许感兴趣的:
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】好的重构与不好的重构
- C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光
- 【外评】代码审查反模式
- 我受够了维护 AI 生成的代码
- 【外评】Linux 桌面市场份额升至 4.45
- 【外评】作为全栈开发人员如何跟上 AI/ML 的发展?
其中一个因素是蓝牙使用的是 2.4GHz 频段,而该频段上的 WiFi 功能要强大许多倍,因此蓝牙数据包只能在 Wifi 传输的间隙通过。许多蓝牙设备都使用 Nordic Semi nrf5x 芯片,我们知道,使用这些芯片,如果在频段的一端有一个 Wifi 在传输,而另一端有所有 BT 类设备在传输,仍然会产生严重的干扰。此外,短波长(约 10 厘米)意味着射频会到处反弹和折射,往往会造成设备无法通信的小死角(死角会随着环境的变化而移动,如人的走动)。
因此,要通过任何设备都需要大量的错误处理,而且很多软件的质量并不高。此外,当窥探数据包明显表明设备未连接时,谎称设备已连接的用户界面也会帮倒忙(看你的了,苹果)。
在射频安静的环境中,蓝牙是相当可靠的。带有错误处理/重复传输功能的低数据速率设备通常能在干扰信号较少的情况下正常工作。在附近有大量 WIFI 的情况下,尝试使用 BT 进行相对高速率的数据传输(如音频)总是会出现问题。
> 其中一个因素是蓝牙使用的是 2.4GHz 频段,而该频段上的 WiFi 功能要强大许多倍,因此蓝牙数据包只能在 Wifi 传输的间隙通过。
反之亦然:蓝牙想传输就传输(或者说必须传输,根据跳频序列),802.11/Wi-Fi 必须处理后果(即考虑信道已被占用,或根据 CSMA/CA 在发生碰撞时停止传输)。
不过,所有合理的现代蓝牙实现都支持自适应跳频,并尽量避开其他协议繁忙的频段。
我的意思是,在射频层面,BT 数据包会被 Wifi 屏蔽(因此只能在间隙中通过)。由于 Wifi 的功率为 100mw,而 BT 的功率约为 1mw,再加上 WiFi 设备的天线通常要大得多,因此 WiFi 是需要解决的问题。而在繁忙的环境中(我经常在一次扫描中看到十几个无线接入点),几乎每个信道都被占用,因此在 BT 类型的功率水平下,要获得大量数据是很困难的。
AirPods 是蓝牙 1 类设备,发射功率也是 100 mW!更大的(全向)天线也不会增加 EIRP,而这正是蓝牙和 802.11 的限制。
> 在繁忙的环境中(我经常在一次扫描中看到十几个接入点),几乎每个信道都会被占用。
反正大部分信道都是重叠的,所以我们实际上只讨论 2.4 GHz 频段中的 3 个左右信道。
而且由于 CSMA/CA,802.11 在感应到任何足够强大的干扰时都必须后退。蓝牙 Class 1 看来绝对符合条件,因此蓝牙实际上会让所有这些信道上的 802.11 频道后退,从而降低占空比,为蓝牙创造足够的空隙,使其传输能够正常通过。
蓝牙音频(A2DP)只需要大约 300 kbit/s;这还不到蓝牙总吞吐量的 20%,因此即使每次传输都需要重试 5 次,也不会出现音频中断。
我从来没有遇到过 802.11 能够真正压倒蓝牙音频连接的环境,无论是 A2DP(需要大量缓冲)还是 HFP(不需要)。但微波或老式 “非回传 “2.4 GHz 发射器(老式婴儿电话、模拟无绳电话等)绝对可以。
作为一个有趣的实验,将一个已连接的蓝牙音箱放入微波炉中(不要打开,如果有任何疑问,请拔掉电源插头)。
你会发现,当微波炉门关闭时,蓝牙连接会立即被屏蔽破坏。
除了 2.4GHz 频段的其他用户外,蓝牙还得忍受微波炉的泄漏。
我刚把 iPhone 13 放进微波炉,同时用 AirPods Pro 播放音乐。它们一直在可靠地播放,直到大约 10 英尺远的地方才开始断线。到 15 英尺时,连接就消失了。走回 10 英尺范围内,音乐又开始了。
包括 AirPods 在内的大多数苹果设备都支持蓝牙 1 类,其最大发射功率比常见的 2 类高 40 倍。
这很有趣。感谢您分享结果。我没有苹果设备,所以暂时无法亲自验证。
我假设其他蓝牙设备会立即死机。
没错,微波炉通常不执行 CSMA/CA 🙂
> 在射频安静的环境中,蓝牙非常可靠
比如在瑞典森林深处的某个地方,只有我和我的电锯,还有一个蓝牙耳机兼护耳器。
……它还是会随机开始卡顿或掉线。
蓝牙就是不可靠。当日月星辰排列整齐和/或有一只血统纯正的黑公鸡以正确的方式献祭时,蓝牙才能正常工作,否则它就会耍花招。
我对蓝牙的唯一真正不满是许多音频设备(耳机、扬声器等)总是弄错一个实施细节:
几乎所有的音频设备在启动时都会连接到上次连接的信号源。到目前为止,一切都很好–这往往正是我想要的,而且还省去了进入源设备的 BT 或声音菜单手动选择目标设备的麻烦。例如,这在汽车上就非常有用(除非你和别人共用一辆车)。
但许多设备不允许从新连接的源设备 “踢出现有源设备”。这意味着,为了使用水槽,我需要在家里找到当前连接的音源,然后手动断开它(因为水槽通常没有任何用户界面功能,可以在不关闭水槽的情况下断开当前音源)。
包括苹果 AirPods 在内的一些较新的蓝牙耳机确实支持这种行为,对我来说这绝对是改变了游戏规则。我真希望 Bose 也能采用这种方式;他们的 “同时连接两台设备 “黑客行为通常弊大于利,尤其是当这些设备在一个家庭中共用时。
只有一个?
我车上的 BT:手机上的 Spotify 一连接就开始自动播放。显然,因为汽车=音乐。我还没弄明白这到底是 Spotify 的问题,还是安卓系统的问题,抑或是梅赛德斯的愚蠢。
与你的问题类似,我的笔记本电脑和我经常相隔很远,以至于我的 Bose 耳机开始了无限的连接/断开循环,每隔 30 秒就会出现一条冗长的 “已连接到笔记本电脑 “信息。在这种情况下,如果它能在几次短暂连接后停止尝试,那就足够了。
我的结论是,我们使用无线设备已经有 20 多年了,但在用户体验方面还只是肤浅的认识。
> 我车上的 BT:手机上的 Spotify 一连接就开始自动播放。显然,因为汽车 = 音乐。我还没弄明白这到底是 Spotify、安卓系统的问题,还是梅赛德斯的愚蠢。
是你的车。有些汽车在启动时会自动发送 “播放/恢复 “控制信号,从而导致安卓系统恢复播放最近激活的音频应用。不知道是谁认为这是一个合理的默认设置…
> 与你的问题类似,我和我的笔记本电脑经常相距甚远,以至于我的 Bose 耳机开始了无限的连接/断开循环,每隔 30 秒就会出现一条冗长的 “已连接到笔记本电脑 “信息。在这种情况下,如果它能在几次短暂连接后停止尝试,那就足够了。
无论如何,这都不是一个真正的解决方案,但如果你通常对所连接的设备很有信心,你可以通过 Bose Connect 应用程序禁用语音输出。
这个问题也曾让我很头疼,但我在安卓系统上找到了解决方法:如果将手机调到开发者模式,就可以选择一次只连接一台设备。
我打开了这个选项,效果非常好。当前设备永远不会启动,在极少数情况下我想使用另一个设备时,手动切换也很容易。
我的问题不是手机(即源设备),而是某些汇接设备在已经连接到某些设备(即错误设备)时不允许新的入站连接。
我可以接受有时音频焦点被其他蓝牙设备窃取的情况,因为这通常是我想要的行为;我只是希望能有一种补救措施,不需要在公寓里走来走去,寻找可能占用我想要的汇接设备的源设备。
确实很烦人。关上 Macbook 的盖子并不能改变这种行为!
是的。以前有一个设置可以改变这种行为,比如 “待机时也允许蓝牙连接 “之类的,但自从改用苹果自己的 CPU 后,这个设置似乎就不存在了,就像 “Power Nap “一样–大概是高效内核耗电量太低,不值得再提供一个开关来停用这种行为了。
苹果生态系统中的人通常都说蓝牙很好用。我不在那个生态系统中,但我听说过很多次。我一直以为苹果公司会努力确保他们的所有设备都能很好地通过蓝牙互操作。对我来说,我只是假装蓝牙不存在,也不使用它。我从未有过良好的蓝牙使用体验。
几乎太完美了–我希望当我坐在屋子里,而我妻子到家时,我的手机不会连接到我的汽车上。尤其是汽车,只有在车内才能连接,这有多难?
实际上,我在使用苹果蓝牙时也遇到过很大的挫折,但我认为这是一个更高层次的堆栈。
我妻子有 iPad、iPhone、苹果手表和 iPod。
我只有 iPod。
有无数次,当我用 iPod 听 iPad 时,当她进入范围时,不是我的 iPod 切换到她的 iPhone,就是她的 iPod 窃取了我与 iPad 的连接。
我没有在任何设备上找到可以解决这个问题的设置。我简直要疯了。
真糟糕。但比起我的经历,我还是更愿意接受这种情况,我的经历通常是一遍又一遍地尝试让设备连接上。比如在车里听音乐,停车加油,然后花 20 分钟再试着让音乐响起来(通常就放弃了,听收音机)。真是让人抓狂。
在 iPhone 的 AirPods 设置中,有一个 “连接到此 iPhone “选项。默认情况下是自动连接,但也可以改为只有在之前连接过的情况下才连接。
我想这应该可以满足你的使用情况,不过鉴于蓝牙普遍不可靠,如果它不能像预期的那样工作,我也不会感到惊讶。
本页对我有帮助: https://support.apple.com/guide/airpods/switch-airpods-betwe…
设置 -> 蓝牙 -> <你的 AirPods 名称> -> 按小 (i) -> “连接到此 iPhone” -> “上次连接到此 iPhone 时”,应该就能解决这个问题。
只有当这些设备都登录到同一个 Apple ID 时,才会出现这种情况。你们都有独立的 Apple 账户吗?
> 苹果生态系统中的用户通常报告蓝牙工作得很好
在苹果世界里,蓝牙并不完美(对我来说,多设备切换并不总是有效),但它比上面描述的混乱情况要好得多。
例如,我从未遇到过 AirPods 因我走路的姿势而开始断电的情况(就像 OP 所描述的那样)。我可以在离开设备几个房间后再开始断线。
我以前做过一些蓝牙工作,从堆栈到硬件再到固件,不同设备的质量差别很大。几年前,任何安卓设备都是一场噩梦,但现在越来越好了。
可以确认。我的苹果设备上的蓝牙可以完美地工作,而我的非苹果设备(Windows/Linux PC、JBL 扬声器等)上的蓝牙却不行。不知道苹果有什么不同之处。
苹果公司控制着链接的两端
我想说的是,时好时坏。
我去年买的索尼经济型耳机与我的 iPhone 搭配使用效果很好。没有任何抱怨。
我 iMac 上的蓝牙堆栈有一个 bug,在正常运行两周左右后就会严重崩溃。非常恼人,因为(魔术)键盘和(魔术)鼠标会停止工作。修复的唯一办法就是重启。
苹果 AirPods Pro 是我用过的唯一能正常工作的 BT 设备。
我不喜欢我的 AirPods Pro,因为它永远不知道要连接到什么设备。有时,当我的 Apple Watch 发生什么事情时,它们会连接到 Apple Watch;有时,当 Apple Watch 使用扬声器时,它们会一直连接到我的 iPhone。
现在我用的是索尼耳塞,只能连接到 iPhone。
您只需将每个 BT 设备(如 airpods)改为 “最后一次连接到此设备时 “自动连接,而不是 “每次 “或其他准确的语言。
我使用安卓和 Linux 蓝牙耳机只有一年左右的时间,但我不记得有什么可抱怨的。
我其实很喜欢蓝牙,因为我觉得它能在这么多设备上正常工作简直是个奇迹。一般来说,我可以让一个东西发出声音,这很酷。
话虽如此,这份清单还是漏掉了我最大的不满:有太多的实现决定权都留给了设备,以至于不同的播放器、扬声器会给你带来完全不同的体验。重新连接后会开始播放吗?它会不会自己重新连接,但不切换音源,让我的有声读物在一小时的车程中静静地播放?
我不得不繁琐地重新连接我的福特汽车,但如果我距离我正在行驶的丰田汽车不到 100 码,它几乎会抢先做其他任何事情,成为我电话的窃听扬声器。
这也正是我最大的不满!实际上,有一种合理的行为,音频水槽制造商只需实施,而且看起来并不难,就能解决大部分问题:https://news.ycombinator.com/item?id=39029037。
我真希望蓝牙规范能要求或至少强烈建议采用这种行为。
我与英国电信的合作非常愉快
只要你想用的东西都是苹果的,苹果的东西基本上都能用。
我用非苹果耳机连接工作用的 Windows 盒子,也能正常使用,但在 Windows 盒子上连接需要更长的时间,不知道为什么。
我的主要用途是 BT 音频外设,但我也曾用它来连接鼠标,以及将设备编程/配对到网络上,都没有出现过问题。
我以前也有过这样的抱怨,但在过去的四五年里,我一直很顺利。也许是我运气好。我整天都在使用 BT 设备(Bose QC35 II 与 Macbook、Pixel Buds Pro 与 Google Pixel 4 以及最近的 7 Pro)。不得不承认,我很少将 BT 与 Microsoft Windows 结合使用。
这就是我的经验。Windows 也变得更好了,尽管它仍然是我遇到问题最多的系统。主要是它们的 BT 配置随机出错,我不得不去排除故障,比如我一个月没使用耳机,它就决定禁用设备,尽管任务栏显示已配对。
我没有遇到你的问题。我使用罗技 MX 鼠标、Bose QC 35 耳机、索尼 1000-XM4、JBL 耳塞、许多无品牌的中国 BT 耳机、车载蓝牙、BT 免提电话。对我来说,它们在 macOS、Windows 和 Android 上都能正常工作。
有时 BT 音频会变得很差,这取决于它要穿过多少面墙,但这也在情理之中。
问 HN:为什么蓝牙如此不可靠?
351 点赞|whitepoplar|7 年之前|261 条评论
https://news.ycombinator.com/item?id=14752719
问HN:蓝牙有点烂。为什么我们没有更好的东西?
135 点赞|zachallaun|1 年之前|161 条评论
https://news.ycombinator.com/item?id=32469976
Ask HN:为什么蓝牙如此不可靠?
89 分|aosaigh|4 年之前|41 条评论
https://news.ycombinator.com/item?id=22904442
Ask HN:还有人觉得蓝牙令人沮丧吗?
52分|c7DJTLrn|2年前|55条评论
https://news.ycombinator.com/item?id=31441331
我个人认为:过度工程化。最初的 BT 协议栈设计大多采用了红外线(IrDA)协议的框架。IrDA 的初衷是 “简化 “OSI 模型,但正如委员会的设计一样,它衍生出了一个即使在当时有能力的硬件中也很难实现的庞大规范。像往常一样,它有一个非常雄心勃勃的计划,即成为一个适用于一切的协议,包括尚未发明的设备。
我曾经参与过一个项目,允许卡车司机使用 Palm 设备向需要 IrDA 收发器加密狗的打印机打印发票。这在其他任何正常的嵌入式系统中都是一个不超过一周的项目,但在我这里却变成了 3 个月的煎熬。大部分时间都花在了排除故障和调试从物理层到应用层的几层系统上。在那之后的许多年里,我一直从事 BT 和 BTLE 设备方面的工作,虽然我拥有更好的工具和软件栈,但我的经历却如出一辙。只要在 BlueZ 论坛上浏览一下,开发人员即使在尝试做一些愚蠢而简单的事情时也会遇到问题。试想一下,如果要使用 BT 硬件和软件来做更复杂的事情,比如同步多个 BT 扬声器的音频流,会遇到什么问题呢?
在过去的几年里,许多新的 BT 功能不断被添加到规范中,让人感觉像是事后才想到的。特别是在安全等关键领域。而像 WiFi 这样的技术则一直是作为典型的网络通信生态系统来设计的。由于所有的设备都配备了性能更强的硬件,人们的使用经验无疑更丰富了,因此情况有所改善。然而,你需要处理的是由多个硬件和软件组件组成的 “洋葱”,每个组件都有其错综复杂之处,这是工程师对复杂规范进行解释的结果,因此非常难以验证和测试。
不是这样的。我使用蓝牙耳机,在车里用它听音乐,我的几个鼠标也用它。我没有遇到过断线、音频不流畅或其他问题。
有趣的是,你抱怨的是 Windows 系统。我几乎只在 Win10 电脑上使用耳机。你可能会发现一个口碑不错的蓝牙适配器(我用过 TP-Link USB 适配器)连接到你的 Windows 电脑,然后禁用它内置的任何蹩脚功能,可能会对你有奇效。最坏的情况是,你只需支付 12 美元。
我遇到的大多数问题都是在配对时出现的,而且即使是在配对时也不常见,只要让电脑/手机 “忘记 “外围设备,然后将外围设备关闭再打开,几乎总能解决。最糟糕的情况是,我会同时重启电脑和手机,然后问题就会迎刃而解。
不过,我要说的是,我使用的所有设备都是最近两三年生产的,所以这可能会有帮助。
4:我在移动(慢跑)时也遇到过蓝牙耳机音频卡顿的问题。我几乎可以肯定这是硬件问题,因为制造质量差(间歇性短路或开路)。我在声誉较好的制造商(如索尼、Bose)那里没有遇到过这种情况。
由于波长的原因,电波在与固体接触时会出现问题。例如,您的身体–太多的身体可能会碍事,尤其是在移动时。
当然,2.4 千兆赫微波不会穿透组织(棉质衣物可能没问题),但视线问题应该不大。我承认我还没有尝试过在手机和问题耳机之间放一块铅板,但考虑到耳机在隔壁房间也能正常工作,我认为实际的机械抖动才是问题所在。
会不会是软件搞不清楚是否应该让音频静音以监听口语命令,并在您慢跑时重复?
我曾无意中遇到过这种情况
我知道说 “好吧,它对我有用 “没有帮助,但…. “好吧,它对我有用”。我会尽力提供更多帮助:
我有几台 Windows 电脑,现在四台都在运行 Windows 11。在所有情况下,至少一直使用蓝牙键盘和鼠标,而且在所有情况下,蓝牙键盘和鼠标都能正常工作,没有任何故障。这其中既有像样的高端品牌设备(罗技、微软),也有来自亚马逊的普通设备。
我用蓝牙耳机–亚马逊上的便宜货–连接手机,有时也连接笔记本电脑,都没有问题。最糟糕的情况是有一次连接不上,我把它们放回盒子里,再拿出来就能正常使用了。在此之前,我已经用过三个蓝牙耳机,效果都一样。
所以我想知道这是否与你使用的特定套件有关(或者是你运气不好,或者是我运气好)。或者是您所处环境的其他特定条件,例如 2.4GHz 频段的干扰很强。您是否可以将这些设备移到一个非常不同的位置来检查?或者您是否有朋友拥有 Windows 笔记本电脑,您可以在他的电脑上试试这些设备?如果您在任何情况下都无法将单个 BT 设备连接到 Windows 设备,这似乎很不正常,很可能与其他问题有关。
蓝牙非常好用,这就是为什么它是标准配置,并一直沿用至今。
1.我不使用苹果产品,但 iPhone 和苹果 Air pod 似乎能很好地集成在一起,不知道您为什么说它们不能集成在一起,能详细说明一下吗?
2.我每天都在车内使用手机蓝牙(也是两个不同的制造商生产的),从未听到过 “不流畅 “的音频。不过,在连接 Sonos 家庭扬声器时确实会出现这种情况,但那是通过 Wifi 连接的,也许这就是您所想的?
3.我不使用 WINDOWS 系统,但我的日常驱动程序是一个蓝牙鼠标,在 Thinkpad 上使用 Ubuntu。它与我的蓝牙耳机连接也很好。你是说 Windows 无法连接蓝牙鼠标?这就奇怪了,如果是真的话,我就承认了。
4.我用耳机和便宜的安卓设备在健身房的跑道上跑步。我把手机放在中心位置,然后跑圈,没有遇到过任何问题,同样,我无法想象你在解决什么问题。
整个帖子都让人匪夷所思。有没有人遇到过与 op 一样的问题?
由于使用的是 2.4GHz 频段,所以取决于您所处的位置。如果你身处密集的办公楼或公寓楼中,有数百万个 Wifi 接入点,你就会遇到麻烦。在独立的房子里,有更高频段的现代无线接入点?可能会有很好的体验。
根据我的经验,蓝牙的可靠性近年来有了显著提高。我遇到的蓝牙设备问题已经不像几年前那么多了。我现在有几款设备在音频方面都非常可靠。
而像我的 2015 款斯巴鲁 Forrester 这样的老设备在蓝牙可用性方面仍然是……垃圾。根本不值得尝试。
根据我的经验,效果相对较好,但有些设备根本不合格或存在漏洞。
我的耳机(但有时会受到微波干扰)、扬声器、键盘和鼠标(但如果系统处于紧张状态,鼠标就会不稳定–这告诉我,CPU 的处理量相当大,这是一个原因)工作稳定。它们总是能连接并执行所需的功能。
我的两辆车都不可靠。其中一辆车几乎每次在短时间内第二次连接时都会断开连接(例如急刹车,手机连接 20 秒后断开)。另一辆有时音频不稳定或失真。这两个连接有时都无法接通我的手机,我不得不手动触发连接。有时根本无法连接,直到我重启汽车。考虑到汽车信息娱乐系统的总体状况,我怀疑这是汽车制造商实施不力造成的。(考虑到交流发电机等的干扰以及身处法拉第笼中,可以说这并不简单)。
我在 linux、windows 和 macos 上都使用过蓝牙。大部分情况下都能正常工作(绝对没有 “从未见过 BT 在 Windows 上能正常工作 “那么糟糕)。有很多键盘、鼠标和音频设备都能正常工作,我想知道您使用的是什么设备,以及您的使用情况如何。
我对它的主要不满是
– 无法选择最终连接到哪个设备(通常是前一个使用过的设备,除非没有,如果你不想这样,但它还是连接上了,那么断开连接就很烦人)。
– 如果你想在听音频的同时使用麦克风,大多数实现的音频质量都很差
– 缺乏对实际多设备连接的支持(例如,不是 “此耳机可在两个’已连接’音源之间切换,但只能从其中一个音源播放”,而是 “此设备可混合这两个音源并播放结果”。这应该不会比另加整个 BT 电路和混音器的最坏情况贵多少)。
我认为有蹩脚的硬件和蹩脚的软件。但也有好的组合。
就拿我来说,我的索尼和舒尔耳机在我的 2013 MBP、iPhone 7 和多个 Linux boxen 上都能完美工作。我不知道 MBP 和 iPhone 使用的是什么控制器,但所有 PC 使用的都是英特尔控制器。
我现在有一个鼠标,它通过 BT 工作得出奇地好,尽管我通常使用它自己的加密狗,因为它似乎延迟较少,而且它可以在显示器和键盘切换的同时,在连接到我的 KVM 的多台计算机之间切换。
不过,在 Windows 系统上,尽管硬件完全相同,操作却不那么流畅。建立连接所需的时间更长,鼠标的延迟也比在 Linux 下更明显。它也不支持我的耳机和 Linux 都支持的高比特率音频模式,如果我在看视频,音频就会不同步。
由于我很少使用 Windows,所以总的来说,我是一个非常快乐的蓝牙用户。
根据我近几年的经验,BT 性能主要是在开阔空间时表现不佳。我发现在修剪草坪或散步时,除非手机放在衬衫口袋而不是前后裤袋里,否则蓝牙音频就会中断。一旦我在一个封闭的空间里,就不会有这个问题了。
我的问题不是 BT 为什么这么不可靠,而是尽管它有这么多问题,为什么仍然如此普遍?
因为当供应商振作起来的时候,它实际上运行得很好。
市面上很多产品都是 “在我的机器上也能用 “的拼凑品。
现有数量。目前,蓝牙设备的出货量已达 49 亿台。这可能是狗屎,但它是我们所拥有和了解的狗屎。
https://www.statista.com/statistics/1220933/global-bluetooth…
对我来说一般都能正常工作,但微波干扰似乎不可预测,这取决于设备。我的较好的耳机具有最长的续航能力,但不知为何很容易过电。
QoL 方面仍需改进,如更好的多点功能,尤其是媒体控制。总的来说,围绕它的整个界面,我希望能有办法在信号源之间手动跳转。
在这一点上,我正在认真考虑建立一个音频混音器,从我所有的设备接收蓝牙信号,然后传输到我的主耳机。虽然这需要使用很多加密狗,但我很惊讶没有现成的解决方案。
另外,有人知道是否有办法测试/查看耳机和加密狗是否属于 01 类吗?很少有制造商会做这样的广告,而且苹果设备往往具有惊人的续航能力,这只是一种假设。
真奇怪。我认为现代蓝牙工作得非常好。除了偶尔(大约一个月一次)重启一次(在三星智能手表手机和 Macbook pro 上)。
我经常使用的蓝牙设备
– 索尼 WC-310 耳机
– JBL 耳机(配对菜单很困难)
– JBL 耳机(配对菜单困难)
– Beats Flex 耳机
– Mi Band 健身追踪器(这最需要重启手机蓝牙)
– Echelon 自行车、跑步机、第三方心率监测器(翻新的亚马逊 Firepad 在深度睡眠状态下偶尔需要重启蓝牙堆栈)
– 1c ar 中的售后主机
– 配偶车上的德国原厂主机(Android Auto)
– 用于飞机的廉价蓝牙发射器/接收器
根据我的经验,只有在便宜的设备上、电池电量不足时或在高干扰区域,才会出现蓝牙卡顿现象。奇怪的是,我在 MacBook pro 上使用鼠标时遇到的蓝牙卡顿比使用 RF 或 USB 时要少。
最让我惊讶的是,每当我试图将蓝牙智能手表连接到我的手机应用时,它都会将我家中 2.4GHz 的 Wifi 速度降低到每秒千字节。实际上,这绝对是垃圾技术,因为这些问题,我再也不在任何地方使用蓝牙技术了。
既然这里似乎有很多 BT 专家,也许我可以问一个相关的问题–为什么 BT 还是这么慢?
有时我想把一个文件从设备上传输到手机上,或者从手机上传输到设备上,传输一个几 MB 大小的文件可能需要几分钟。别误会我的意思,这比 00 年代时要好得多,但我觉得近距离无线文件传输至少没有 WIFI 快,这在我看来很奇怪。或者说,我的手机/笔记本电脑不支持全速传输?
> 在我看来,近距离无线文件传输的速度至少不如无线网络快,这很奇怪。
BT 功耗低、带宽低。
如果它和 WiFi 一样快,我们就什么都用 WiFi 了。
AirDrop 等协议使用蓝牙进行协商,然后使用 WiFi 进行数据传输,原因就在于此。
> 如果蓝牙和 WiFi 一样快,我们就什么都用 WiFi 了。
是的,但据我所知,目前还没有像 AirDrop 那样通过无线网络发送文件的跨平台方法。我之所以使用蓝牙,是因为我有一部安卓手机,如果我没有连接到 Wifi,或者因为某些原因无法通过 Wifi 发送文件(我通常需要先上传文件到某个地方,然后再下载到我的设备上),那么除了 BT,我没有其他选择。
因此,我想跟进的问题是,为什么没有一种所有设备都能实现的使用 Wifi 的点对点文件传输协议?鉴于很多人没有 AirDrop,因为他们使用的不是苹果设备,普通人如何在不上传到互联网或使用电缆的情况下在设备间快速发送文件?
我想检查一下 2.4ghz 范围内的干扰情况。我使用了大量蓝牙设备,没有任何问题。
电池有问题,但那是另外一个问题。
我没有你说的这些问题。我一直在 Windows 上使用 BT 鼠标/KB 音频,并用它向手机发送文件。
我上一次遇到 BT 音频不流畅是在 2016 年,那是特定手机 BT 硬件的问题。
如果文件传输速度能好一点(100KB/秒只能传输小文件),我就能永远摆脱专有文件同步服务了。
影响最大的因素是
1) 蓝牙设备通常由电池供电,其微波射频部分和数字信号处理器是在对功耗敏感的硅片中实现的。第 1 层和第 2 层性能不佳。
2) 蓝牙规范非常复杂,需要获得 IP 许可才能实现更理想的功能,如低延时音频,因此价格低廉的蓝牙设备通常会对不受欢迎的功能进行严格测试,而放弃获得更好的 CODEC 许可。
3)蓝牙基于跳频(FHSS),最低和最高允许频率之间的波长差约为 4 毫米。在某些情况下,这意味着任何一个收发器附近的中间射频不透明物体的大小都可能导致部分蓝牙频谱被阻断,从而导致一定比例的传输帧低于接收器获取帧中比特的能力。这些丢失的帧不会被重新传输,因此呈现给用户的音频听起来就像瑞士奶酪,每隔几十毫秒就有一个均匀交错的间隙。
4)许多 Windows 传统蓝牙设备的驱动程序包都会在 Windows 驱动程序包旁边安装一个完整的并行蓝牙协议栈(CSR、东芝……),因为盒装协议栈在很长一段时间内都非常糟糕,不支持许多更新的功能。现在情况好多了,但从这种状态下升级的机器,或安装了设备盒内驱动程序的机器,使用的蓝牙协议栈往往已经过时。
5) 嵌入式蓝牙固件通常没有针对许多硬件故障情况进行过测试,或者由于 CPU 或内存限制而省略了堆栈中更复杂的部分,并且依赖于对成本敏感的 NVRAM 技术,而这些技术与配备 1 GHz 控制器的 NVMe 设备相比,具有很高的误码率,无法进行大量花哨的纠错。有时,设备没有可靠的 NVRAM 区域来存储某些持久状态,也没有办法告诉你校验和没有成功(如果有的话),所以配对就会因为看似神秘的原因而失败。要知道,很多很多蓝牙芯片都是由极其低端的 CPU(我见过 8051)驱动的,所以根本没有处理错误的空间。蓝牙规格非常复杂,很多程序都有很多失败模式,在很多情况下,固件就会放弃,把框架扔在地上。
蓝牙确实非常复杂,完整的规范长达数千页。Nordic SDK 中的代码超过 10 万行,而专有协议栈(他们不提供源代码)可能又有 10 万行代码。Nordic 试图让你购买他们的蓝牙软件开发服务,这也许可以解释为什么在我看来他们的示例代码并不是最棒的(例如,他们提供了一个处理中断的示例和一个连接多个设备的示例,但没有同时处理这两个设备的示例,而且你不能把这两个示例放在一起)。Nordic 的 SDK 是对蓝牙堆栈的封装,因此你不仅要了解蓝牙本身,还要学习 Nordic 对蓝牙的封装。他们每隔几个月就会更换堆栈、SDK 和芯片本身(查看其零件编号历史),因此你编写的任何代码很快就会过时。有人猜测,大型制造商喜欢蓝牙是因为它对小公司来说是一个很大的进入壁垒,不像 ANT+。我在一个月内就在一个嵌入式设备上实现了 ANT+。我花了两年时间试图让蓝牙在同一设备上工作(当然,蓝牙的配置更复杂,需要多个通道同时工作),而且我已经花了十年时间使用无线无线电进行嵌入式编程。大多数开发人员只是使用一个几乎没有修改的示例程序,因此他们不会很好地处理错误,也不会考虑从糟糕的情况中恢复,或进行安全/加密。人体会阻挡蓝牙信号。我有一个测试设备,距离一台笔记本电脑大约 3 英尺,我在那里对无线电进行长期测试,每次我站在设备和笔记本电脑之间,数据就会停止。我们使用的是基于蓝牙的体戴式传感器和定制的智能手表,所以这对我们来说是个问题,如果有人将智能手表的手放在背后或胳膊下,所有通信都会停止。如果把手机放在后口袋里,就会错过智能手表发出的大部分数据包。这是因为它使用的是 2.4GHz 频率,而 VHF 无线电在绕过人体和穿过障碍物方面要强大得多。蓝牙技术在很多方面都是错误的,但它在智能手机中无处不在,所以现在我们不得不使用它。
我和配偶共用一辆车。当我在家里用蓝牙耳机连接手机时(比如,一边洗碗一边听播客),如果她开车驶入汽车接口(就在厨房旁边),汽车就会把我的耳机从蓝牙连接上踢下来,而我则连接到汽车上。这非常烦人。
我会尽我所能回答我所了解到的问题。
> 1.同一制造商生产的设备不能互相查看
有不同版本的 “蓝牙”,如果主机无法与客户端协商,它就不知道如何处理。
> 2.蓝牙无缘无故变得不流畅。
根据我有限的经验,我注意到有不同的音频配置文件,其中一个是高质量的,但当你在其中加入麦克风时,它就会明显降低质量。麦克风和音频输出的质量都会下降,我想这是因为设备切换了配置文件。
> 3.我从未见过 BT 能在 Windows 上正常工作,即使是在 2024 年。我想不出任何一个能将 BT 设备连接到 Windows 计算机的例子。
对不起,我用的是 linux,我想大家都是在 windows 上使用蓝牙的。
> 4.BT音频对我的身体移动很敏感,例如,当我以特定步伐行走时,蓝牙耳机会持续掉线。
你走路的频率是 2.4GHz,别这样。(说真的,我不知道那是什么,听起来很糟糕,也很爽)。
雪上加霜的是,罗技公司采用专有格式与鼠标和键盘进行无线通信,在安装简便性和使用可靠性方面堪称小奇迹。当然,他们可以更加依赖于自己定义明确的硬件,但仍然如此。
目前还没有标准的蓝牙实现方案,因此在这一领域存在一定程度的问题。不过总的来说,我认为你是在根据自己的经验进行推测。
我也在 Windows 上使用蓝牙耳机[1] 和键盘[2]。
虽然我不能说这种体验没有问题,我偶尔也会遇到需要解决的问题(主要是音频问题,因为某些控制器/接收器存在带宽限制等),但它并不像你说的那么糟糕。
事实上,我想说的是,这与我使用安卓/iOS 系统的体验并无太大区别,在安卓/iOS 系统中,我也曾遇到过蓝牙方面的问题。
[1] https://www.turtlebeach.com/collections/stealth-700-gen-2
[2] https://www.logitech.com/en-us/search.html?q=K400+Plus+Wirel…
https://xkcd.com/927/
据我所知,该标准没有统一的实施方式。因此,每个实施方案在某些方面都是独一无二的。因此,”统一 “的体验是不可能的。
几乎所有(真正的)标准都是如此:802.11、以太网、5G 等标准也没有参考实施方案,但没有人会说 “统一的以太网体验 “是不可能的。
其他人的情况我不清楚,但如果你无法在 Windows 上运行,那就是你做错了。
这完全与芯片组硬件和驱动程序有关,而这些硬件和驱动程序在整个 PC 世界都不是标准化的。有些人并不关心蓝牙,他们想少花钱买板子,所以制造商就满足了他们的要求。在个人电脑上,要想获得良好的无线性能,就必须支付额外的费用。在苹果 Macintosh 上,无论你是否愿意,你都需要支付额外的费用,但你却能换来稳定的质量。
您是否考虑过这样一种可能性,即 Windows 笔记本电脑/PC 的蓝牙主机适配器制造商可能不止一家,而且正确连接适配器以确保良好无线电传播的方法也不止一种?
说到 Windows 硬件,”能在我的机器上使用 “是一种非常狭隘的观点。
我一直在 Windows 上使用蓝牙(比如现在,我正在用蓝牙耳机听音乐)。
各个设备的蓝牙性能可能差别很大。
一年前,我做了一台 “游戏电脑”,它有一个比较大的天线,看起来就像 1990 年动漫中一个巨大机器人的 “耳朵”,我可以带着 V-Moda 耳机走遍我 2200 平方英尺的房子,从来没有听到过掉线的声音。我有一台戴尔 Latitude 笔记本电脑,它足以穿过办公室的 10 面(薄弱的)内墙连接耳机;它以前运行 Windows 系统,但现在运行 Linux 系统,仍然可以很好地连接 BT 鼠标和耳机。另一方面,我还有一台 Alienware(也是戴尔的)笔记本电脑,如果我坐在电脑前转头,就会出现掉线现象。
其他人认为我疯了,但我从未遇到过任何一种 iDevice 在通过 WiFi 串流音乐时,还能在 BT 扬声器上播放音乐的情况(即使朋友来访也无法做到这一点。
我认为这可以归结为:电脑或手机的电磁性能可能因设计不同而大相径庭,有些电脑或手机的电磁性能要比其他电脑或手机好得多。你不会在广告中看到这一点,甚至也不会在评论中测试这一点,所以你不能只选购 BT 性能好的电脑。同样,不同的设备会有不同的性能水平,这一切都会因细节而异……我的 V-Moda 耳机与我的 Yoshinon(例如 YOShInOn 的实体店)配合得非常好,但对于一些较差的耳机,你可能会得出 Yoshinon 很糟糕的结论。
由于该标准非常复杂,各种实施细节,甚至是软件中的细节,都会产生很大的影响。例如,如果使用比特率较低的音频编解码器,对无线电的要求就会降低,可靠性也会提高,但比特率越高,音质就会越好。我喜欢高质量的声音,但如果可以选择,我可能会用质量换取范围内的可靠性,但……我没有这个选择。
就频率而言,蓝牙使用的 2.4GHz 频段与 WiFi 最初使用的频段相同。你最好相信,如果很多其他设备(甚至其他蓝牙设备)都在使用这个频段,蓝牙的性能就会下降。有时我在想,整个 “可转换 “笔记本电脑的出现是否是:(a)试图迷惑空乘人员(你必须把它收起来吗?这样一来,设备的设计就不会真正考虑到 BT 生活方式,因为即使它能在家里和办公室使用,他们也无法演示。(900 MHz 也有类似的问题…在美国 99.9% 的地区,该频段几乎没有信号,但去帕洛阿尔托,你会发现每个斯坦福毕业生都有一堆半生不熟的小玩意儿,让我的扫描仪尖叫不已,也会让任何初创公司相信,该频段太拥挤了,你根本用不上)。
我还想说的是,这个行业只是没有用正确的方式来思考这个问题。我希望 BT 能有一种 “基础设施模式”,在这种模式下,我的耳机可以在整个房子里漫游,数据通过以太网传输,然后通过我的一个 WiFi 集线器输出。这种东西我可能一两个月就能用一套耳机搞定,但要让它在所有不同的设备和所有情况下都完全可靠,看起来很难,我明白为什么还没实现。
蓝牙是一种用于定位、跟踪和指纹识别的技术。蓝牙起初是一种无线音频输入/输出协议,但有太多的诱因促使它被用于其他 “智能 “应用。这就好比问为什么谷歌的搜索不好,为什么 Facebook 的社交网站不好。