tinyalsa 是 Google 在 Android 4.0 之后推的基于 alsa 內(nèi)核的用戶層音頻接口。tinyalsa 提供的頭文件是'asoundlib.h',提供最基礎(chǔ)的 pcm 和 mixer 操作。
tinyalsa 的實現(xiàn)文件為 pcm.c(實現(xiàn) pcm api)和 mixer.c(實現(xiàn) mixer api)。在其中有四個小工具它們分別是:
tinypcminfo:tinypcminfo.c,查看 pcm 設(shè)備能力;
tinyplay:tinyplay.c,使用 pcm 設(shè)備播放 wav 格式的音頻文件;
tinycap:tinycap.c,使用 pcm 設(shè)備采集 pcm 格式的碼流,并保存為 wav 格式的文件;
tinymix:tinymix.c,對 pcm 設(shè)備的控制,包括音量調(diào)節(jié)、設(shè)備切換。
這四個工具使用時可以先使用 tinypcminfo 查看 pcm 設(shè)備的能力,以防我們使用其他三個命令時使用
了不合理的配置會出現(xiàn) parameter invalid 的錯誤。
本文檔適用于最小 Linux 系統(tǒng)以及 Qt 系統(tǒng)。
64.1 源碼編譯
查看本次提供的壓縮包內(nèi)容,分別為指導(dǎo)文檔,測試音樂以及源碼文件夾,如下圖所示。
將提供的壓縮包中的文件夾 tinyalsa 拷貝到 Ubunut 的工作目錄,如圖。
本次編譯環(huán)境為“arm-2009q3”,如下圖所示。
進(jìn)入到 ubuntu 上的 tinyalsa 文件夾,在當(dāng)前目錄下輸入命令“make”,自動生成 4 個 可執(zhí)行文件“tinycap、tinymix、tinypcminfo、tinyplay”。
編譯完成。
64.2 耳機和喇叭測試
本次測試是在 iTOP-iMX6Q 開發(fā)板上進(jìn)行,耳機,麥克風(fēng)的連接如圖。喇叭左聲道是 J5,右聲道是 J6。
64.2.1 測試環(huán)境和 tinymix
將上一步生成的 4 個二進(jìn)制可執(zhí)行文件和我們提供的測試音樂 1.wav 文件拷貝到 U 盤,插入到運行最小 Linux 系統(tǒng)的 iMX6Q 開發(fā)板上,掛載 U 盤使用命令 “mount /dev/sda1 /mnt/disk”,如下圖所示。
如果在 qt 系統(tǒng)上,那么先需要使用命令“mknod /dev/sda1 b 8 1”創(chuàng)建節(jié)點,再使用命令“mount/dev/sda1 /mnt/disk”掛載 U 盤,如下圖所示。
然后使用命令“cp /mnt/disk/tiny* /bin”將 U 盤中的四個可執(zhí)行文件拷貝到“/bin”目錄下,如下圖所示。
接著在控制臺輸入“tinymix”命令,如下圖所示,可以看到全部設(shè)置。
第一行顯示“Number of controls: 52”表明有 52 條 tinymix 混音命令。
第二行是介紹 0-52 條命令的表格; 第一列 ctl 表示編號。使用對應(yīng)命令的時候如果想用第 n 條命令,則 tinymix 要加上第一個參數(shù) n; 第二列 type 表示類型。INT 類型可以設(shè)置為 0-127 或者 255,BOOL 表示可以設(shè)置為 0 和 1; 第三列 num 表示“可控制數(shù)目”。例如,有兩個耳機(左耳和右耳)通道,可是只用設(shè)置一個參數(shù) 4 同時就可以設(shè)定兩 個耳機的音量;第四列 name 解釋命令;第五列 value顯示參數(shù)當(dāng)前的值。
測試中需要用到的命令如下表所示。注意,下表中只有最常用的命令,其它命令可以使用 tinymix 命令查看研究,這里不再贅述。
編號 5 中的零交叉檢波(Zero Cross detection)設(shè)置增益只有在輸入信號零交叉后才會變化,開啟此項以避免增益變化引起的咔咔聲。
應(yīng)該注意的是,無論在最小 Linux 系統(tǒng)還是 Qt 系統(tǒng),聲音默認(rèn)同時從揚聲器以及內(nèi)置耳機輸出,并沒有切換內(nèi)外放的開關(guān)。而當(dāng)揚聲器的兩個聲道同時打開時,默認(rèn)只有右聲道有聲音,要想使用左聲道輸出,則需關(guān)閉右聲道。即揚聲器只能作用在一個聲道。如果在耳機和揚聲器同時設(shè)置非零音量時播放音樂,聲音從耳機以及揚聲器的右聲道傳出。
64.2.2 耳機播放測試
使用耳機輸出,則在串口控制臺依次執(zhí)行以下命令:tinymix 4 127、tinymix 5 1、 tinymix 38 1、
tinymix 41 1,如下圖所示。
接下來在串口控制臺輸入“tinyplay /mnt/disk/1.wav”,音頻文件的具體路徑應(yīng)以實際情況為準(zhǔn),操作完成如下圖所示。
可以看到正在播放,并且耳機中可以聽到聲音,退出播放使用快捷鍵 Ctrl+c。
64.2.3 揚聲器喇叭播放測試
使用揚聲器,則需在串口依次輸入以下命令:tinymix 6 127、tinymix 7 1、tinymix 38 1、tinymix
41 1,如下圖所示。
接下來在串口控制臺輸入“tinyplay /mnt/disk/1.wav”,音頻文件的具體路徑應(yīng)以實際情況為準(zhǔn),操作完成如下圖所示。
可以聽到揚聲器中有聲音播放。
上一篇:時時筆記丨驅(qū)動丨迅為4412開發(fā)板-mmc升級驅(qū)動修改篇
下一篇:迅為i.MX8MM開發(fā)板ARM嵌入式Linux安卓9.0工業(yè)核心板iMX8M Mini板
推薦閱讀最新更新時間:2025-06-07 23:06



設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- 南芯科技推出高集成度多口移動電源解決方案,助力充電寶市場穩(wěn)健發(fā)展
- 英飛凌推出具有超低導(dǎo)通電阻的CoolSiC? MOSFET 750 V G2,適用于汽車和工業(yè)功率電子應(yīng)用
- DigiKey 慶祝 B 站賬號粉絲突破 10 萬,贈送驚喜禮包
- 碳化硅企業(yè) Wolfspeed 啟動破產(chǎn)重組,預(yù)計 2025 年三季度末完成司法重整
- 蘋果被曝考慮放棄自研模型 轉(zhuǎn)而與Anthropic或OpenAI合作
- ?百度文心4.5來襲!英特爾Day0即支持端側(cè)部署
- 【廣瀨電機】關(guān)于中國發(fā)明專利侵權(quán)訴訟達(dá)成和解的公告
- 英飛凌BMS解決方案推動電動汽車創(chuàng)新
- 地平線的L3判斷與實踐路徑
- 汽車網(wǎng)絡(luò)升級攻略:CAN-CAN FD-車載以太網(wǎng)
- 豐田計劃投資印尼開發(fā)電動汽車,當(dāng)?shù)丶t土鎳礦是優(yōu)勢?
- 激光雷達(dá)讓馬斯克炮轟、讓Velodyne趨之若鶩,國內(nèi)發(fā)展良好
- 新能源補貼過渡期結(jié)束,“腰斬”時代來了?
- 電動汽車安全問題拷問:電池是如何失控的?
- 國家助力氫能源發(fā)展,氫能源時代何時才能到來?
- 單片機匯編 設(shè)晶振頻率為11.0592M,串口工作方式1
- MAX7219驅(qū)動8X8點陣級聯(lián),翻頁
- Keil5中51單片機和MDK的整合的方法
- 單片機智能溫度檢測控制系統(tǒng)程序設(shè)計
- STC89c52+DS1302時鐘,數(shù)碼管顯示時間日期,可調(diào)節(jié)