1. 概述
在调试 Android 音频时候,在 HAL 层 dump 音频数据往往是最好的 debug 手段之一。本文介绍如何在 i.MX8 Android Automotive12 上 dump HAL 层音频数据。
2. HAL 代码
i.MX8 Android Automotive12 的 HAL 代码位于 android_build/vendor/nxp-opensource/imx/alsa/ 下,打开 tinyalsa_hal.cpp 代码,在 out_write 中,可以看到 HAL 会获取 property 变量 vendor.audio.dump 的值来决定是否 dump 音频数据,如下所示:
在 audio_dump 函数中,为保存音频数据的实际操作。首先会打开需要保存数据的文件,然后把数据写进去,最后关闭文件,函数如下所示:
默认代码保存数据的文件为 /data/out_src.pcm 和 /data/out_dst.pcm,用户可以根据自身情况进行修改:
在调试 Android 音频时候,在 HAL 层 dump 音频数据往往是最好的 debug 手段之一。本文介绍如何在 i.MX8 Android Automotive12 上 dump HAL 层音频数据。
2. HAL 代码
i.MX8 Android Automotive12 的 HAL 代码位于 android_build/vendor/nxp-opensource/imx/alsa/ 下,打开 tinyalsa_hal.cpp 代码,在 out_write 中,可以看到 HAL 会获取 property 变量 vendor.audio.dump 的值来决定是否 dump 音频数据,如下所示:
在 audio_dump 函数中,为保存音频数据的实际操作。首先会打开需要保存数据的文件,然后把数据写进去,最后关闭文件,函数如下所示:
默认代码保存数据的文件为 /data/out_src.pcm 和 /data/out_dst.pcm,用户可以根据自身情况进行修改:
3. 结论
总的来说,在默认代码下,启动设备,输入以下命令,可以实现把 HAL 层数据保存在文件中:
setprop vendor.audio.dump true
touch /data/out_src.pcm
chmod 777 /data/out_src.pcm
touch /data/out_dst.pcm
chmod 777 /data/out_dst.pcm
参考文献
《Android_User's_Guide.pdf》
《Android_Quick_Start_Guide.pdf》
评论