最近筆者在應用中科藍訊AB32VG1開要播放音頻文件, 看例程有音頻已轉換C數組數據, 但教程沒講方法,只是說:
首先需要下載 romfs.c(本文件包含了兩個音頻文件用於demo播放) 替換 applications 下原有的 romfs.c
問原廠(中科藍訊)技術支持, 也沒得到確定答案, 在網上找了很久, 沒找上方法, 聽原廠支持用mkromfs可以轉, romfs.c 注釋:
/* Generated by mkromfs. Edit with caution. */
複製代碼
也是說音頻文件數據是用mkromfs生成, 那堅信是用mkromfs生成音頻文件數據。
在網上找了很久,沒這個工具下載。差點就自己用C寫一個工具了,以後會這麼做的。
「眾裡尋他千百度 驀然回首 那人卻在燈火闌珊處」
「得來全不費工夫」
在每個rt-thread工程目錄都有rt-thread\tools\mkromfs.py (這個tools目錄下,也沒有很多python腳本工具, 沒用到,還不清楚它們的用法, 以後, 需要什麼工具,先在這裡找找。。。。。
看看是怎麼用的吧,首先,得有python環境,還有以前用過python, RT-Thread studio 配置及編譯工具都要用python, 之前沒安裝python 也沒關係,找到RT-Thread studio安裝目錄下, 也有python, 把python設置環境變量量, 相信搞開發的,這個都 會了, 不再贅述。
.\platform\env_released\env\tools\Python27
複製代碼
題外話:RT-Thread studio用的是Python2.7版本,應該升級一下了
看看這個mkromfs.py用法吧
在RTT工程目錄都有rt-thread\tools\目錄下,按住shift鍵,在空白處滑鼠右擊->在此處打開命令窗口
可快速,打開命令窗口定位到此目錄
輸入命令:
python mkromfs.py -h
複製代碼
第一次,使用命令, 不明白怎麼用, 都可以這樣的方法, 查看幫助,現用法介紹如下:
usage: mkromfs.py [-h] [--dump] [--binary] [--addr ADDR] rootdir [output]
positional arguments:
rootdir the path to rootfs
output output file name
optional arguments:
-h, --help show this help message and exit
--dump dump the fs hierarchy
--binary output binary file
--addr ADDR set the base address of the binary file, default to 0.
複製代碼
大概明白用法了
然後新建的一個目錄
mkdir wav
複製代碼
在wav目錄下, 放入要轉的wav格式的音頻文件。
再說說wav處理吧, 根據原廠(中科藍訊)技術支持的說法, 採樣率要求48KHz, 編碼格式 16bits PCM
把採樣率不是48KHz,轉成採樣率48KHz
然後,導出wav文件,選擇編碼格式 16bits PCM
生成romfs.c, 輸入命令:
python mkromfs.py wav romfs.c
複製代碼
把之前rt-thread工程裡romfs.c替換掉, 重新編譯。
燒錄開發板, 能播放了, 但聲音變了。
遺留疑難問題
聲音為什麼會變了呢? 採樣率話, 已經轉換了.
/****
** 您的點讚,在看,轉發,是我們寫下去動力。
** 動動您發財手,請幫忙點讚,在看,轉發
** 謝謝 抱抱
**/