蓝牙基础:蓝牙音频

article/2025/10/19 23:58:30

前言

蓝牙耳机中存在两种 通话音频 和 音乐音频两种音频。

1 通话音频

1.1 音频链路

通话中的音频数据(Audio)直接通过基带上的SCO链路进行传输

音频通路(1) Audio-》Voice-》SCO/eSCO-》HCI-》Baseband(2) Audio-》Voice-》PCM-》Baseband这两种方式表现在硬件连接的差异上,音频通路1方式,音频数据是走HCI接口发送给蓝牙基带的 音频通路2方式是通过PCM接口直接把音频数据传送给基带

在这里插入图片描述

1.2 控制协议

通话控制有两种方式:TCS-BinaryAT指令集

TWS耳机中的HFP协议是基于建立在RFCOMM上的AT指令实现控制的
在这里插入图片描述

1.3 音频编码

通话数据的编码格式有以下两种:PCMCVSD

麦克风通路:
在这里插入图片描述

2. 音乐音频

2.1 音频链路
音频链路A2DP-》AVDTP-》L2CAP-》HCI-》BaseBand (ACL)

A2DP中的音频分发流程
在这里插入图片描述

2.2 音频编码
音乐音频数据的编码格式:SBC、ACC、APTX、LDAC

蓝牙耳机,为无线传输,无线传输那么就涉及到信道带宽的问题,信道带宽决定了从音源到耳机单元的有损程度。

目前主流的传输编码格式有以下几种:

SBC:80%以上的蓝牙传输格式均为这个,带宽为:328kbps,也就是说,传输播放器上的极高这类的音频是没有问题的。

ACC:小部分厂商的传输格式,主要是苹果,理论带宽和SBC差不多。

aptX和aptX HD:高通专利,带宽和SBC/ACC差不多,但是借助于更高效和更好的编码算法,使得在同等码流下,音频的更多细节得以保留。

LDAC:Sony大法专利,除了Sony的播放器、耳机外,安卓手机需要安卓8.0以上系统,且有授权的情况下,可支持此协议,如华为mate10。带宽为:1024kbps,所以,能够传输更多音频细节。

大概比较是:LDAC>APTX>=ACC>SBC

解析蓝牙耳机音质为什么不给力?


http://chatgpt.dhexx.cn/article/SdLTvqqY.shtml

相关文章

ZYNQ平台Linux4.6内核蓝牙音频

第1章 RTL8723BU蓝牙模块驱动移植 1.1. 硬件方案 1.2. 蓝牙驱动移植 1.3. 蓝牙耳机规格要求 第2章 Linux音频框架 2.1. ALSA 2.2. Pulseaudio 2.3. GStreamer 2.4. Jack 2.5. FFADO 2.6. Xine 2.7. Phonon 2.8. 其他分支 第3章 蓝牙协议栈Bluez 3.1…

蓝牙的音频通路

如上图: 音频通路1:Audio->L2CAP->ACL->HCI->Baseband,a2dp音频走这种方式; 音频通路2:Audio->Voice->SCO/eSCO->HCI->Baseband,hfp、hsp蓝牙通话走这种方式; 音频通路…

蓝牙音频编码协议

文章目录 一、人耳需要什么样的采样率二、采样率分类三、蓝牙音频编码协议分类 一、人耳需要什么样的采样率 人耳对声音的分辨率是在20Hz~~~~20KHz的范围。 二、采样率分类 常见的蓝牙音频采样率: 44.1KHz48.0KHz88.2Khz96Khz 三、蓝牙音频编码协议分类 SBC 全…

蓝牙音频那些事

蓝牙音频那些事TOC 现在随着智能手机的发展,全面屏的发展,3.5mm耳机孔逐渐变成奢侈的配件,为此逐渐出现了蓝牙耳机,而且这玩意变得越来越多,真有点“忽如一夜春风来,千树万树梨花开”的味道。 蓝牙音频包…

车载蓝牙音频系统测试

1、介绍 随着汽车影音娱乐信息技术的发展,车载音频系统的需求趋势越来越明显。因此,针对汽车音频娱乐系统的新兴技术,对应的测试需求也在不断提升。本文将针对汽车车机的蓝牙音频系统和车机A2B总线系统,做出相应的应用测试介绍。…

一文读懂蓝牙音频

一、蓝牙简介 蓝牙是一种无线通讯技术标准,用来让设备之间在短距离内交换资料,最早由瑞典的爱立信公司在 1994 年发布。提出蓝牙标准的目的很简单,就是简化电子设备之间的数据交互过程。那个时候手机刚刚开始流行,用手机跟耳机或电…

# 蓝牙音频相关知识

蓝牙音频相关知识 文章目录 蓝牙音频相关知识1 音频源2 蓝牙音频编解码器3 一些标准4 蓝牙音频其他相关知识4.1 蓝牙版本4.2 ANC(主动降噪)4.3 音响相关参数4.4 音质评价4.5 HI-Fi声音特点4.6 耳机线材4.7 耳机分类4.8 IP防尘防水等级4.9 噪音与量化噪音…

一篇深入读懂蓝牙音频!

一、蓝牙简介 蓝牙是一种无线通讯技术标准,用来让设备之间在短距离内交换资料,最早由瑞典的爱立信公司在 1994 年发布。提出蓝牙标准的目的很简单,就是简化电子设备之间的数据交互过程。那个时候手机刚刚开始流行,用手机跟耳机或…

system.ArgumentException:DataGridViewComboBoxCell值无效

原因是初始化的时候给ComboboxCell绑定了一系列的值,但是真正赋值的时候却给了一个不在那一系列值范围中的值,所以就报了这个错 在开发的时候难免会因为数据的问题出现这个问题,为了不让系统崩掉,就要处理这个错误信息 但是怎么…

“System.ArgumentException”类型的未经处理的异常在 mscorlib.dll 中发生

报错图示: 项目描述: 公司项目,买的个性化框架,从SVN拉取之后,在VS中重新生成了下解决方案(补全缺少的文件),运行就报这个错误了。 错误原因: 开始怀疑app.config里面…

VRTK4.0报错ArgumentException: Input Axis Tilia.Input.UnityInputManager_Axis1 is not setup.

VRTK4.0使用Input.UnityInputManager.OpenVR.LeftController预制体运行报错 ArgumentException: Input Axis Tilia.Input.UnityInputManager_Axis1 is not setu To change the input settings use: Edit -> Settings -> Input 这是因为inputManger里面的Axes不对&#x…

【Unity】Post-Processing 问题 ArgumentException: Kernel ‘MultiScaleVODownsample1‘ not found. UnityEngine

这个问题是当windows 的项目切换到 其他平台的项目的时候,后处理文件中的compute shader配置是不一样的 解决途径: 1.关闭相关Post-processing values and Post-processing Layers 报错停止 2.重新导入 Post-processing 3.新建Post-processing profiles

System.ArgumentException:“‘gb2312‘ is not a supported encoding name.

在工具栏》NuGet包管理器》管理解决方案的NuGet程序包中,搜索 System.Text.Encoding.CodePages并安装 System.Text.Encoding.CodePages Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); StreamReader sr new StreamReader(fs, Encoding.GetEncoding("G…

System.ArgumentException:“被指定为此窗体的 MdiParent 的窗体不是 MdiContainer

在C#中添加子窗口时报异常 解决方法 在主函数中添加代码:this.IsMdiContainer true;

C#中:System.ArgumentException: 指定的值含有无效的 CRLF 字符。 参数名: value

调用第三方接口的时候会一直出现这个问题, url ConfigurationManager.AppSettings["Url"] "/user/api/account/getAccount?UserName" UserName; HttpWebRequest request WebRequest.Create(url) as HttpWebRequest; …

【解决】ArgumentException: GetComponent requires that the requested component ‘XX‘ derives from...

开发平台&#xff1a;Unity 2020 编程平台&#xff1a;Visual Studio 2020 使用语言&#xff1a;CSharp   一、问题描述 备注&#xff1a;这是一个开发者对 Unity 认知存在错误所产生的方法。 问题代码信息&#xff1a; var thisMat transform.GetComponent<Materials&g…

Unity报错 ArgumentException: The Thing You Want To Instantiate Is Null.

&#xff08;自学Unity&#xff0c;练手小游戏“坦克大战”&#xff0c;遇到了bug&#xff0c;卡了好一会儿&#xff0c;随手记录一下解决方法&#xff09; 问题描述 Console窗口的报错本来还能运行的通&#xff0c;不知道误碰了什么就报错了 原因 脚本尝试实例化一个没有…

ArgumentException: JSON parse error: Invalid value.

迭代文件夹下的文件反序列化json遇到【ArgumentException: JSON parse error: Invalid value.】错误&#xff0c;检查下是不是meta文件忘记排除了&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…

Unity :ArgumentException: method arguments are incompatible

报错截图&#xff1a; ArgumentException: method arguments are incompatible。 中文翻译&#xff1a; 参数异常:方法参数不兼容。 什么时候出现&#xff1a; 在点击UI的Button按钮时。 原因&#xff1a; 在Button的事件中有个一个绑定丢失了。 解决办法&#xff1a; 移除就…