Le Audio ASCS release/released operation流程介绍
LEAudio技术解析:Release与Released操作详解 LEAudio作为无线音频领域的革命性技术,其核心在于全新的LC3编解码器和多重串流音频系统。本文重点解析了ASE控制协议中的Release与Released操作机制: Release操作由客户端发起(Opcode 0x08),请求服务器释放指定ASE资源。服务器校验通过后,ASE进入Releasing状态,并拆除底层CIS连接。
在无线音频的世界里,一场静默却深刻的革命正在进行。
它,就是LE Audio。
这不仅仅是一次技术迭代,而是从底层重新定义声音如何被创造、传输和体验的范式转移。其复杂性令人敬畏——它并非单一技术,而是一套精密的生态系统:全新的LC3编解码器以超凡效率重塑音质与功耗的平衡,多重串流音频让真无线立体声达到前所未有的稳定与同步,而音频广播功能则打破了“一对一”连接的百年窠臼,让声音如电台般自由播撒。
然而,正是这种复杂性,构成了我们必须深入学习它的不可辩驳的理由。未来的声音图景将由它绘制:从下一代真无线耳机、无障碍助听设备到公共场所的沉浸式音频导览、多语言广播,乃至元宇宙中清晰无缝的语音交互。不了解LE Audio,将意味着在即将到来的音频浪潮中失去对话的基石。
这不仅仅关乎技术本身,更关乎我们如何连接彼此,如何感知世界。让我们共同开启这段探索之旅,揭开LE Audio的复杂面纱,看清它为何必将成为未来数年里,每一个科技从业者、音频爱好者乃至普通用户都无法忽视的关键命题。
接下来的系列文章,我们将逐步拆解这座精妙的技术大厦。
同时我也录制了一系列的Le audio视频,有兴趣的可以咨询,我会带领你们入门Le audio!翻过大山,眼下皆是风景!!!
------------------------------------------------------------------------------------------------------------------------------------------
Le Audio文章目录:
https://wlink.blog.csdn.net/article/details/158457264?spm=1001.2014.3001.5502
---------------------------------------------------------------------------------------------------------------------------------
本文力争给大家讲明白几个核心点:
- ASCS release/released的作用是什么?
- ASCS release/released的流程是什么?
带着这两个疑问我们就开始文本的介绍!
一. release/released的作用
根据规范重新梳理 Release 与 Released 的关系:
Release:由客户端发起的操作,请求服务器释放指定 ASE 的资源。Released:由服务器自主发起的操作,用于通知客户端释放已完成,并根据是否缓存编解码器配置,将 ASE 最终置于Codec Configured或Idle状态。
下面制作流程图和文字说明。
🔁 Release 与 Released 完整流程(规范版)

📖 文字介绍
1. Release 操作(客户端发起)
- 作用:客户端请求服务器释放一个或多个 ASE。
- 参数:操作码
0x08+Number_of_ASEs+ASE_ID列表。 - 流程:
-
- 服务器校验 ASE 状态(不能为
Idle或Codec Configured,否则无资源可释放)。 - 校验通过后,返回
Success响应,ASE 进入Releasing过渡状态。 - 服务器内部拆除底层 CIS、清空 QoS 参数、释放等时通道资源。
- 控制器确认 CIS 已拆除。
- 服务器校验 ASE 状态(不能为
2. Released 操作(服务器自主发起)
- 触发条件:
-
- 条件A:客户端主动发起的
Release已完成,且底层 CIS 已拆除。 - 条件B:服务器检测到 LE-ACL 链路丢失(无需客户端指令)。
- 条件A:客户端主动发起的
- 作用:通知客户端最终释放结果,并根据是否缓存编解码器配置来决定 ASE 最终状态。
3. 两种最终状态的处理
|
是否缓存 Codec 配置 |
ASE 最终状态 |
附加操作 |
|
是 |
|
写入 |
|
否 |
|
删除所有 |
4. 关键要点
Released是服务器自主发送的通知,客户端不需要(也不能)主动发送Released。- 客户端应监听
ASE特征值的变化,根据收到的最终状态(Codec Configured或Idle)决定后续动作:
-
- 若为
Codec Configured,下次建立流时可以跳过Config Codec,直接从Config QoS开始。 - 若为
Idle,下次必须从Config Codec重新配置。
- 若为
- 规范允许服务器缓存编解码器配置,这可以减少重新配置时间,适用于快速重连场景。
二. 流程介绍
1. 状态机管理
我们在前面也已经介绍了,Sink/Source操作如下图:



2. 流程介绍


a. 发起 release操作过程
|
字段 |
大小(字节) |
描述 |
|
Opcode |
1 |
|
|
Number_of_ASEs |
1 |
本次 Release 操作涉及的 ASE 总数,必须 ≥ 1 |
|
ASE_ID[i] |
1 |
第 i 个 ASE 的标识符 |

b. 通知(Notify)操作结果(成功)
格式如下:
|
字段 (Field) |
大小 (Octets) |
描述 (Description) |
|
Opcode |
1 |
本次响应对应的客户端发起的 ASE 控制操作的操作码(例如 release 的 Opcode 为 0x08) |
|
Number_of_ASEs |
1 |
服务器提供响应的 ASE 总数。 |
|
ASE_ID[i] |
1 |
该 ASE 的标识符。 |
|
Response_Code[i] |
1 |
若服务器成功完成客户端发起的 ASE 控制操作,则设为 0x00;否则设为表 5.1 中定义的错误码。 |
|
Reason[i] |
1 |
若服务器成功完成操作,则设为 0x00;否则设为表 5.1 中定义的原因值。 |

c. 更新并通知 ASE 的releasing状态

releasing是没有参数的

又又又又发现ellisys一个解析bug,哈哈
d. 释放iso通道

e. server自动决定是否缓存通知相应的状态

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)