最近在使用rtthread 的 audio設備播放wav的音頻,MCU使用的是STM32F4,使用過程中發現,不能在播放單聲道音頻的時候會特別快,究其原因是因為STM32的I2S是雙聲道輸出,而音頻輸入的聲音是單聲道的,相當于少一個聲道的數據,其實如果播放立體聲音頻就沒有問題了。
但是使用立體聲音頻會增加WAV文件的體積,這樣占用的FLASH空間就大了,目前想到的方案是將讀取到的音頻數據擴展到雙聲道,我們直接修改wavplayer.c中的內容,如果有更好的解決方案,歡迎指正:
修改點如下:
1、聲明一個聲道數變量來記錄當前音頻的聲道數,在聲明一個ushort類型的指針,方便后邊計算
2、獲取當前音頻的聲道數
3、獲取音頻文件讀取緩沖區的指針
4、如果是單聲道音頻,那么將 單聲道的音頻擴展到左右兩個聲道,形成雙聲道數據流
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
mcu
+關注
關注
146文章
16675瀏覽量
347851 -
緩沖器
+關注
關注
6文章
1904瀏覽量
45329 -
STM32F4
+關注
關注
3文章
194瀏覽量
27890 -
RTThread
+關注
關注
7文章
132瀏覽量
40684 -
WAV音頻
+關注
關注
0文章
2瀏覽量
1132
發布評論請先 登錄
相關推薦
采用LM4991對單聲道音頻進行放大,功放LM4991一打開使能,喇叭就會有“噗”的聲音如何消除?
我這邊采用LM4991對單聲道音頻進行放大。為了實現低功耗,在不播放音頻時,功放LM4991設置為休眠狀態。
但是在測試過程中,發現功放LM4991一打開使能,喇叭就會有“噗”的聲音,請問如何消除這個聲音呢?
輸入無信號,使能
發表于 08-21 07:33
5W單聲道G,5W單聲道G,F類音頻功放,讓平民音箱動聽
CS5290E是一款高性能、低成本、低功耗的音頻功放IC,采用CMOS工藝,具有電容式升壓型GF類單聲道音頻功放的特點。該芯片集成了ChargePump升壓模塊和AB類和D類兩種工作模式,具有防破音
2.9 W/聲道單聲道D類音頻子系統TPA2051D3數據表
電子發燒友網站提供《2.9 W/聲道單聲道D類音頻子系統TPA2051D3數據表.pdf》資料免費下載
發表于 03-19 16:28
?0次下載
超低EMI, 4.0W單聲道D類音頻放大器CS8121S數據手冊
電子發燒友網站提供《超低EMI, 4.0W單聲道D類音頻放大器CS8121S數據手冊》資料免費下載
發表于 03-07 17:51
?0次下載
MD8002D 3W 單聲道 AB類音頻功放芯片功能說明
電子發燒友網站提供《MD8002D 3W 單聲道 AB類音頻功放芯片功能說明.pdf》資料免費下載
發表于 01-02 11:31
?3次下載
評論