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》
評論