如何设计基于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接口外挂存储设备实现歌曲的大容量存储。此外,系统还提供了串口、以太网等一系列接口,方便与外部进行数据交换和软件升级。
评论