android蓝牙取sbc音频数据
https://blog.csdn.net/u010481276/article/details/86545272
两种方法:
方法1:
dump audio数据
Bluedroid协议栈中把bt_target.h中的宏DUMP_PCM_DATA打开,发送到bluetooth HAL 层的pcm数据被保存在手机的/data/misc/bluedroid/output_sample.pcm格式。
可以用cool edit pro工具分析PCM数据是否有问题
要验证蓝牙 HAL 的输入是否正确,需通过如下方式在 external/bluetooth/bluedroid/
audio_a2dp_hw/audio_a2dp_hw.c 文件中启用 PCM 转储选项:
Enable BT_AUDIO_SAMPLE_LOG
PCM 转储位置: /data/audio/output_sample.pcm
*.pcm 文件可通过 gold wave 工具播放
方法2:
取sniff log
/data/misc/bluetooth/logs
这里为这个
打开cpas软件,Frontline15.0-18.8.17250.17541_signed
导入cfa的文件
选择解决后的音频要放的路径,开始解码
aac导出来好像不能播放
这就是a2dp中sbc编码解码后的音频数据
补充说明:
1.以上方法2的抓取log尽量打开如下Log开关:
首先进行如下设置:
1)把bt_stack.conf配置文件的log输出级别修改为5(默认是2)
2)搜集BT snoop log,在开发者选项中勾选“Enable Bluetooth HCI snoop log”或者在bt_stack.conf中把BtSnoopLogOutput设置为true。
2.audio dump是audio发给蓝牙的; bt audio sample 是蓝牙协议栈编码(sbc/aac)或者A2DP Offload编码的音频数据流(取决于芯片平台策略)
3.方法1提到的相关代码路径:
alps/vendor/mediatek/proprietary/packages/modules/Bluetooth
./system/internal_include/bt_target.h:983:#define DUMP_PCM_DATA FALSE -> true
./system/audio_a2dp_hw/src/audio_a2dp_hw.cc <---没有找到这个宏:BT_AUDIO_SAMPLE_LOG