如何設計基于ARM的多通道專業MP3播放器?
if(STA013_SendCommand(LHP_VOL_REG,0,0x00)) //左聲道音量
STA013_PrintError();
if(STA013_SendCommand(RHP_VOL_REG,0,0x00)) //右聲道音量
STA013_PrintError();
if(STA013_SendCommand(ACT_CON_REG,0,0x00)) //數據傳送激活
STA013_PrintError();
}
4.3播放程序的設計
作為本系統的一個主要創新點,在多通道部分設計合理且高效的播放程序代碼很重要,在這里采用的是將待解碼的MP3文件先由USB設備復制到內存的緩沖區,再由緩沖區發送給解碼器的方法。播放時,程序會根據每個通道的歌曲信息將MP3文件流從USB設備復制到相應的緩沖區中。其主要實現代碼如下:
for(i=0;i4;i++){
if((dbuf[i]=malloc(BUF_LEN))==NULL){
printf(Allocation %d Error n, i);
exit(1);
}
}
4.4 操作界面的實現
完整的MP3播放器設備需要有一個簡潔的操作界面。本系統的操作界面選用MiniGUI軟件進行編寫,通過對MiniGUI運行模式的選擇、MiniGUI的移植[5]以及界面程序的編寫,最終的操作界面如圖4所示。整個操作界面簡潔明了,系統在開機后提供了當前時間,以及播放、設置和復位按鍵,可以直接通過播放鍵來實現多通道播放功能,通過設置鍵進行歌曲目錄的編排。

圖4 播放器主界面
5 結束語
多通道MP3播放器與傳統的MP3播放器相比,具有許多優勢,可以滿足大型公共場所對背景音樂更高性能的需求。多通道MP3播放器可以實現多個音頻輸出通道同步播放,并可以通過USB接口外掛存儲設備實現歌曲的大容量存儲。此外,系統還提供了串口、以太網等一系列接口,方便與外部進行數據交換和軟件升級。
評論