从btsnoop log 讲解A2DP从发起SDP开始到音频流建立完成

接上一篇蓝牙btsnoop log,hci 连接流程详解_一叶知秋之味的博客-优快云博客

1.蓝牙建立连接,鉴权认证完成后,L2CAP发起了SDP的连接,建立CID

2.SDP先去发现对方的pnpinfo,获取供应商名称和版本号等信息,SDP  格式对应一组    SDP_SERVICE_SEARCH_ATTR_REQ/ SDP_SERVICE_SEARCH_ATTR_RSP,如果一次不能传输完数据,会继续continuation
 

 3.SDP完 pnpinfo后,L2CAP断开了SDP的CID,SDP可以发起多次,L2CAP继续发起SDP,去获取L2CAP支持哪些特征

4.SDP在持续的continuation完L2CAP 后,得到完整的    Service Record Attributes

 5.A2DP两个角色,audio sink ,audio source,手机做audio source,播放设备做sink端,从L2CAP中也可以看到对端支持audio sink,所以手机端继续SDP audio sink,获取版本信息等,对端设备也会过来SDP 手机的audio source,获取source端的信息

6. 手机端SDP完sink后发起AVDTP的建立,AVDTP和AVRCP为A2DP的底层协议,AVDTP 数据流,AVRCP控制流;AVDTP数据流也有自己的控制信息,所以AVDTP会建立两条CID,第一条用来控制信息的交互

 7.第一条AVDTP建立完成之后进行开始音频数据流的建立,host发起DISCOVERY,controller返回对方支持的编码stream有几种

8.  继续对每一个stream发起AVDTP_GET_ALL_CAPABILITIES,得到编码详细信息


 

9.get完所有支持的编码,host端根据优先级选择自己想要的编码进行set 编码AVDTP_SET_CONFIGURATION


 

10.set编码完成后,此时会去AVDTP OPEN,去打开音频流到挂起状态,start播放,suspend暂停

11.open完成之后L2CAP同步建立第二条AVDTP

12. AVDTP音频流建立完成后,开始建立AVCTP,AVRCP依赖于AVCTP

13.AVCTP建立完成,AVRCP两个角色CT 、TG,一般情况下手机做TG端,对端做CT端,手机host再次发起SDP,去获取CT端profile的详细信息,对端也会来获取手机做TG端的版本信息等

 SDP完成后正式开启基于AVCTP进行的AVRCP的数据交互,整个a2dp连接完成,下篇讲下AVRCP控制信息交互流程

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值