CSDN账号注册了3年,一直没有上来过,更不用说写博客了。我不知道博客的具体用途,我只想把它当做一种心得来发表,可能是一些技术上的理解或者生活上的小故事。好了,下面我将记录我对WAV播放器的理解。
很久以前就看到过某知名嵌入式论坛上有大牛用单片机来做WAV播放器,我看到后觉得很不错,有一种制作的冲动,因为那时MP3播放器还很贵。后来我确实也做出来了,还把它送给朋友。但是,当时只是完全copy别人的电路和程序,唯一跟原创不同的是把它外表做得精美点,并没有对里面的原理做出分析。今天突然想起那个WAV播放器来,所以打算把知识点梳理一番。
一、 首先是WAV格式。WAV格式音频是采用原始的PCM编码数据,没有经过压缩。PCM编码只是一种数字的量化手段,直接用它来当做原始数据来处理是可以的。只要我们按照原来的采样速率把数据通过DAC,那么声音就会还原回来。你要PCM数据你首先要知道.WAV后缀文件的格式。
WAV文件是以RIFF格式为标准的,RIFF格式是windows环境下大部分多媒体文件遵循的一种文件结构,由多个chunk(块)组成,:RIFF WAVE Chunk, Format Chunk, Fact Chunk(optinal), Data Chunk,LIST Chunk(optinal)等。如下图所示:
那么,每一个chunk的格式是怎样的呢?每个Chunk 有各自的ID,