WAV文件格式终极解析

最近想做一个项目,需要解析WAV文件,于是在网上搜索了一下,结果还是很多的,不过基本都是两篇文章的复本。
随后按照文章上所说对一个WAV文件做了一下解析,但结果发现解析的结果和文章中所说的并不相同,这让我大为困惑。
用WinHex查看了一下那个WAV文件,发现它的文件头不只有网上文章中所说的那些,这就奇怪了,难道网上的文章不对吗?
不过,经过仔细解析后,终于解决了这个问题,原因如下:
1、网上的文章并没有错误,只不过并不全面
2、WAV文件头分为若干个Chunk,网上的文章只说明了4个Chunk,而我在电脑上找到的WAV在这4个Chunk基础上增加了一些自己的Chunk,所以我按照网上文章中所描述的Chunk头严格来读的话,肯定是读跑偏了
3、问题解决起来也很容易:只需要按每个Chunk的定义格式(既前4个字节为ChunkID,之后4个字节为该Chunk大小),根据Chunk ID找到自己所需的Chunk,忽略那些不关心的Chunk,就可以了

当然,自定义的Chunk也不是太随便的,一定要遵寻一定的原则,即:
1、Wav Chunk必须是第一个Chunk
2、Data Chunk必须是最后一个Chunk
3、这两个Chunk之间,其它的Chunk是不是有顺序规定,我现在还不知道

再附上所参考的两篇文章链接,感谢作者
http://www.cnitblog.com/tinnal/archive/2009/01/03/53401.html
http://www.xml.org.cn/dispbbs.asp?boardID=47&ID=26939

posted on 2016-10-18 13:17  Taylor-Yeung  阅读(165)  评论(0编辑  收藏  举报

导航