> 技术文档 > 【Bluedroid】A2dp Source播放流程源码分析(5):音频传输能力动态适配机制:MTU、EDR与3Mbps速率的关键作用与实现原理(bta_av_co_get_peer_params)

【Bluedroid】A2dp Source播放流程源码分析(5):音频传输能力动态适配机制:MTU、EDR与3Mbps速率的关键作用与实现原理(bta_av_co_get_peer_params)


本文深入解析蓝牙协议栈中音频传输能力动态适配机制,重点剖析bta_av_co_get_peer_paramsbtif_av_is_peer_edr等核心函数的实现原理。通过分析MTU计算、EDR检测、3Mbps支持判断等关键技术,揭示蓝牙协议栈如何根据对端设备能力动态优化音频传输参数,实现高质量、低延迟的音频流传输。

一、概述

蓝牙音频传输中,设备的硬件能力(如传输速率、数据包大小)直接影响音频编解码策略与传输效率。bta_av_co_get_peer_params作为核心入口函数,通过整合多个底层查询逻辑,实现对目标设备关键传输参数的统一获取。其核心功能包括:

  1. 计算目标设备的最小 MTU(确保数据传输兼容性);

  2. 检测设备是否支持 EDR(提升传输带宽);

  3. 验证设备是否支持 3Mbps 高速率(支持高质量音频编码)。

该机制依赖设备缓存管理、状态机检查及多角色设备查找等辅助逻辑,形成从设备定位到参数提取的完整链路,为上层音频模块提供可靠的硬件能力参考。

二、源码解析

bta_av_co_get_peer_params

packages/modules/Bluetooth/system/btif/co/bta_av_co.cc// 直接转发调用到类成员函数,保持了 C 风格 API 的兼容性void bta_av_co_get_p