Android 蓝牙 A2dp音频数据通过L2cap 发往Controller -- 代码详解
一、概念
ACL 链路在 Bluetooth 中非常重要,一些重要的应用如 A2DP, 基于 RFCOMM 的应用,BNEP等都要建立, ACL 链路,发送/接收ACL 包。今天一起来分析 ACL 包发送/接收流程,以及涉及到的重要 command/event。
下图是各种应用层使用 L2CAP 的 API:L2CA_DataWrite 发送数据流的过程。
应用层数据到 L2CAP 的入口
我们假设一个听音乐的场景,大家一起分析音乐数据流 AVDTP 以下层的传送。在 AVDTP 中,所有的功能想发送 Data,必须调用 avdt_ad_write_req 这个函数,我们 就从这个函数入手分析。
//当CCB或SCB给l2cap的 Channel 发送数据时,他们最终都会使用到L2CAP的 API:L2CA_Data_Write2 UINT8 avdt_ad_write_req(UINT8 type, tAVDT_CCB *p_ccb, tAVDT_SCB *p_scb, BT_HDR *p_buf)3 {4 UINT8 tcid;5 6 /* get tcid from type, scb */
Android 蓝牙 A2dp音频数据通过L2cap 发往Controller -- 代码详解相关推荐
- android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)
前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...
- android生命周期_Android开发 View的生命周期结合代码详解
咱们以TextView控件为例: /** * Created by SunshineBoy on 2020/9/23. */ public class TestTextView extends and ...
- android接收串口发送字符,安卓串口通讯发送指令代码详解
最近好多做安卓端跟硬件交互的,比如一些智能家居,贩卖机的. 而这些不管是485也好,232的板子也好,都会用到串口通讯,去往下位机发送指令操控.下面是我个人的一些理解,发送串口指令的方法都是一样的,各 ...
- android 方向控制界面,Android Studio屏幕方向以及UI界面状态的保存代码详解
项目:orientation package com.example.orientation; import android.os.bundle; import android.util.log; i ...
- 数据分析--使用Web API(应用编程接口)以自动请求GitHub网站的特定信息为例爬取数据,附完整的Python代码详解
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请 ...
- Android 蓝牙 A2dp 编码SBC、AAC、Aptx、LDAC、LHDC aduio音频概述(1)
同学,别退出呀,我可是全网最牛逼的 Android 蓝牙分析博主,我写了上百篇蓝牙文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦. androi ...
- Android蓝牙A2DP连接实现
代码地址如下: http://www.demodashi.com/demo/14624.html 开发环境: 开发工具:Androidstudio 适配机型:honor8(Android6.0), 坚 ...
- 蓝牙 A2DP 音频传输格式-全面解析
1. 蓝牙 A2DP 音频传输格式 达到 CD 音质需要 1411.2 kbit/s 的带宽,显然 A2DP 无法允许,所以音频数据需要经过压缩.我们知道同样的比特率下,不同的编码格式音质是不同的.A ...
- 车载bc8android蓝牙,android蓝牙接收单片机数据并绘制波形
[实例简介] android蓝牙接收单片机数据并绘制波形 [实例截图] [核心代码] BluetoothActivity └── BluetoothActivity ├── AndroidManife ...
最新文章
- 成功解决 org.mybatis.spring.MyBatisSystemException问题!!
- html css右下角三角形,html – 框内的CSS中的三角形
- 【mongo】centos6.9安装mongo2.6.3
- ubuntu12.10下安装mysqlworkbench出现“Dependency is not satisfiable: libctemplate0”问题的解决方案...
- 找出数组中两个只出现了一次的数
- 「上云」不是终点,释放数据价值才是数字经济时代的「加油站」
- Linux之find exec
- 2018大华软件大赛模拟赛第4题 (某股票操盘手账户里有N支股票,股价互不等)
- 系统提示 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
- 在 CentOS7 安装 ELK
- Android中日期与时间设置控件的使用
- java 加锁_Java中的重重“锁”事
- 【专栏必读】王道考研408操作系统+Linux系统编程万字笔记、题目题型总结、注意事项、目录导航和思维导图
- 一阶逻辑形式推理系统
- 基于深度学习的语义分割
- Vue keep-alive的使用
- 何钦铭c语言第三版第3章答案,何钦铭版C语言第3章答案.pdf
- Gobelieve 架构(转载)
- jsp表单提交中文乱码的解决
- 单点登录 Ucenter 分析