Bluedroid 协议栈a2dp音频有波动的处理方法
来源:互联网 发布:淘宝收二手手机 编辑:程序博客网 时间:2024/05/16 17:17
在使用蓝牙耳机听音乐时会遇到声音断断续续的情况,根据工作经验总结如下:
1:dump audio数据
Bluedroid协议栈中把audio_a2dp_hw.c中的宏BT_AUDIO_SAMPLE_LOG打开,发送到bluetooth HAL 层的pcm数据被保存在手机的/data/audio/下命名为output_sampleX.pcm格式。
可以用cool edit pro工具分析PCM数据是否有问题
2:在协议中数据包被丢弃
首先进行如下设置:
1)把bt_stack.conf配置文件的log输出级别修改为5(默认是2)
2)搜集BT snoop log,在开发者选项中勾选“Enable Bluetooth HCI snoop log”或者在bt_stack.conf中把BtSnoopLogOutput设置为true。
查看是否有:
btif_media_aa_prep_2_send congestion buf count xxx
L2CA_FlushChannel() flushed: 0 + 0, num_left:xxx格式的数据输出。
然后使用frontline的ComProbe Protocol Analysis System解析获取的snoop log a2dp数据包的传输
3:Android4.1及以上版本可以通过Systrace 工具分析设备的性能。
打开bluedroid中的宏BT_AUDIO_SYSTRACE_LOG
进入到sdk的platform-tools/systrace
执行:python systrace.py --time=10 -o a2dptrace.html sched gfx view wm
使用浏览器打开a2dptrace.html,具体的使用方法还在研究中,以后补充- Bluedroid 协议栈a2dp音频有波动的处理方法
- A2DP协议笔记(蓝牙的音频传输协议)
- A2DP & AVRCP,蓝牙音频协议的兄弟组合(1)
- A2DP和AVRCP蓝牙音频传输协议的应用解释
- android bluedroid 协议栈里面的各个组件之间的消息处理机制
- bluedroid 协议栈(一)
- bluedroid 协议栈(二)
- Dissect Bluedroid From A2DP: Part III: Init A2DP Service
- css3 做成的音频波动效果
- Bluedroid From A2DP|source code reading note
- 层的匀速运动波动处理
- 用D-Bus连接A2DP的方法
- A2DP协议笔记
- A2DP协议笔记
- bluedroid 协议 学习
- Dissect Bluedroid From A2DP Part I: Use Case
- Dissect Bluedroid From A2DP: Part II: Init Bluetooth Adapter
- Dissect Bluedroid From A2DP: Part IV: Connect and Communication
- Qt资源
- 数组
- SQL两表之间:根据一个表的字段更新另一个表的字段
- android数据库操作全揭秘 ---- 翻译google官方资料
- ecshop 添加自定义动态库项目详解
- Bluedroid 协议栈a2dp音频有波动的处理方法
- TFS强制解除被独占签出的文件
- Javascript函数及作用域说明
- [文件系统]——系统IO
- aop详解(二)
- js基础学习笔记(2014年开始)
- 多线程创建顺序
- MFC 小知识总结四
- ECShop 模板库项目功能详解