在HC32F460开发板上,配置有I2S接口及外部的WM8731音频编解码电路,通过它播放存放在数组中的WAV音乐。 在播放前,需对例程加以编译和下载,然后耳机插到J11接口并加电予以播放,其形式如图所示。 该WAV音乐是一段采样率为44.1K的音频片段,并循环播放。 实现播放功能的构成形式 该音频片段的数据以如下形式存放在数组中: const uint8_t au8PixieDustSoundI2s_441[]={ 0xE4, 0xFF, 0xF0, 0xFF, 0xE7, 0xFF, 0xF0, 0xFF, 0xF4, 0xFF, 0xF3, 0xFF,0x00, 0x00, 0xFA, 0xFF, 0x0A, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x07, 0x00, 0x09, 0x00,0xFF, 0xFF, 0x03, 0x00, 0xF7, 0xFF, 0xFE, 0xFF, 0xF2, 0xFF, 0xF6, 0xFF, 0xEC, 0xFF, 0xF1, 0xFF,0xED, 0xFF, 0xEF, 0xFF, 0xF1, 0xFF, 0xF2, 0xFF, 0xF7, 0xFF, 0xFA, 0xFF, 0xFF, 0xFF, 0x02, 0x00,0x07, 0x00, 0x08, 0x00, 。。。。 0x97, 0x01, 0x80, 0x00, 0x97, 0x01, 0xAB, 0x00, 0x9A, 0x01, 0xC4, 0x00,0x93, 0x01, 0xD8, 0x00, 0x85, 0x01, 0xDF, 0x00, 0x6E, 0x01, 0xDF, 0x00, 0x95, 0x01, 0x9C, 0x00,0xAF, 0x01, 0x5F, 0x00 }; 我们也可以自行录制一定44.1K的音频内容,然后将其数据存放到该数组中来达到更新播放内容的目的。 当然要达到实用的目的,还是应该与SD卡及文件系统相配合,以达到按文件来下载播放内容,并将播放的数据有SD卡中取出来供编解码器来取用。当然为了连续播放的需要,应为它配置一个供数据缓冲的存储空间,当读取的数据超过一半后就将新的数据存入另一个缓冲区以便切换使用。
|