Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_Android 蓝牙音频设备的切换流程


蓝牙设备在日常生活中随处可见,用蓝牙耳机或音箱听音乐已经成为蓝牙最主流的应用之一。在享受蓝牙带来的便利同时,我们仍时不时能听到蓝牙音质差,延迟高的抱怨。

造成这些问题的原因到底是什么呢?今天就带大家不那么深入的了解下蓝牙尤其是蓝牙音频相关的内容。

0x01 历史

蓝牙是一种无线通讯技术标准,用来让设备之间在短距离内交换资料,最早由瑞典的爱立信公司在 1994 年发布。提出蓝牙标准的目的很简单,就是简化电子设备之间的数据交互过程。那个时候手机刚刚开始流行,用手机跟耳机或电脑进行无线连接成了一个很强劲的需求,蓝牙协议很大程度上也是服务于这类需求。


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_码率_02

Harald Bluetooth


很多人可能早就听过蓝牙这个词的由来,就是这位丹麦和挪威的国王哈拉尔蓝牙,他统一了丹麦的多个部落,所以蓝牙协议的命名也有统一不同标准的寓意在里面。蓝牙的 logo 就是 h 和 b 的组合。


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_uniapp 安卓多个音频_03


蓝牙技术一直在迭代,发布于 2003 年的蓝牙 1.2 是蓝牙真正走向安全可用的标志。

蓝牙 2.0(2004 年)则着重提高多任务处理能力,同时支持双工模式,可以一边语音通讯,一边传输文件;

蓝牙 3.0(2009 年)一度走了弯路,它试图引入高速传输,加大带宽,客观上挤占 WiFi 的位置,但主流蓝牙应用如听歌,用不到很大带宽,反而徒增功耗和成本;


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_采样率_04


蓝牙 4.0(2010 年)重新找准定位,引入 BLE 概念,即 Bluetooth Low Energy 低功耗蓝牙;

蓝牙 5.0(2016 年)让蓝牙在低功耗下具备更强大的传输能力,提高了安全性和可达性,逐渐成为目前主流。

最新的蓝牙 5.2 则着力于多设备间低功耗音频串流,为 TWS 真无线立体声提供更多可能。

关于 TWS 的内容您可以回顾:

NTi Audio:科普:TWS 耳机,真无线技术之战zhuanlan.zhihu.com

Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_uniapp 安卓多个音频_05


0x02 规范

组成蓝牙协议的基石是一个个规范(Profile),蓝牙标准里目前有二十多个规范,一个规范其实就是一种通讯的类型或者协议,不同规范覆盖不同的应用。

其中有三个规范聚焦于音频数据的传输。

A2DP,蓝牙立体声音频传输规范,它是一个单向数据传输规范,比如从电视到音箱,这类应用对音质的要求比较高,这可以说是应用最多的规范(之一?),后面我们详细介绍;


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_采样率_06


另外两个音频相关的规范分别是 HSP 蓝牙耳机规范,主要涉及语音数据传输;HFP 免手持设备规范,经常用在车载娱乐系统的应用中,这个时候我们不仅要听音乐,还需要传输手机里的通讯录等数据。根据各自的应用,它们的编码和采样率各不相同。


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_蓝牙协议_07

* 勘误:图中 ADP 应为 A2DP

采样率是音频的核心指标之一。所谓采样,就是把模拟信号转换为数字信号的过程,采样率越大,音质越好(细节越丰富)。采样后每秒的数据量就是码率,为了给大家更直观的理解,一般 CD 的码率是 1400 kbps。

0x03 延迟和音质

是时候讲讲蓝牙耳机的音质和延迟问题了。延迟很好理解,相比于有线耳机,蓝牙音频传输时,首先要根据相应蓝牙协议编码,再进行传输,接收端收到后,又要进行一次解码,这能带来多则几百毫秒的延迟,几十毫秒的延迟人耳就能明显感觉出来了,几百毫秒根本不能忍。看视频时,现在的播放器都有画面延迟补偿,抵消了音频延迟的影响,如果你是游戏党,就知道蓝牙延迟多么明显了。


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_uniapp 安卓多个音频_08


至于音质,就涉及到编码了。用蓝牙听音乐走的都是 A2DP 规范,遵从这个规范,各家公司又采用了各式各样的编码,正是这些编码决定了音质。SBC 编码是最基本的 A2DP 编码,所有使用 A2DP 规范的设备都支持该编码(相当于 A2DP 的默认编码)。这个“古老”编码方式码率约为 CD 的 1/5,音质表现一般,追求音质的各个厂商都在发力各自的编码方式。

主流的有 AAC 和 aptX。


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_码率_09


AAC(Advanced Audio Coding)高级音频编码采用了更先进的算法,可以做到“更低码率,更好音质”。苹果是目前 AAC 的主要支持者,它的所有设备均采用 AAC 编码,结合自家的芯片等技术,苹果蓝牙耳机等设备的延迟等指标均有不俗表现。

不过这里有一个小“BUG”,很多测试都证明,如果用支持 AAC 编码的蓝牙设备听 AAC 编码的音源,还是会对音源进行一次 AAC 编码再传输,希望以后能有所改进。


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_蓝牙协议_10


aptX 目前属于高通的技术,它在音质和延迟等方面都有针对性的改进,可以做到最大 576 kbps 码率(aptX HD)或约 40 毫秒的延迟(aptX LL)。而真正的蓝牙音质王者当属华为 HWA 和索尼的 LDAC,这两种编码能实现超过 900 kbps 的码率,离真正的 HiFi 仅一步之遥。


Android 蓝牙音频设备的切换流程 安卓蓝牙音乐_码率_11

上图可以直观看出各种编码的主流码率区别(图片来源:Sound Guys)

了解了编码的概念,挑选蓝牙耳机等产品时,就可以根据自己的播放器合理选择了,最新的安卓手机一般支持众多编码,我们还可以根据需要进行设置。如果设备支持的编码不同或设置错误,就会按 SBC 默认编码传输音频。

不过归根结底,蓝牙解决的始终是从有线到无线的问题,如果想用来听 HiFi,就有点强人所难了。