发布时间:2025-12-09 17:53:05 浏览次数:7
预备知识
必备基础知识用4个字节 表示一个整数每个字节8位 字节可以用无符号整数(十进制)来表示(0-255) 假设有如下4个字节194 021 001 000分别转换成16进制为C2 15 01 00高位在前 于是如下15C2 0001再转 如下000115C2 (这个就是4字节表示的整数对应的16进制)转成10进制如下71106======================================================================================开始 真正内容wav文件 = 文件头 + 数据体文件头 44个字节前12个字节用来说明文件是哪种类型 (如下字节)082 073 070 070 202 043 000 000 087 065 086 069 ------ a.wav082 073 070 070 234 046 000 000 087 065 086 069 ------ b.wav082 073 070 070 120 048 000 000 087 065 086 069 ------ c.wav082 073 070 070 194 021 001 000 087 065 086 069 ------ d.wav这12个字节里面第5-8个字节是不一样的,其他一样,这四个字节就表示一个整数,该整数为:从下一个地址开始到文件尾的总字节数。也就是说,前8个字节加上该整数就等于本wav文件总字节数,不信可以自己算算,百发百中。。。剩下 32 个字节分为两个部分。12-35 字节用来说明文件结构36-43 字节用来说明数据大小44到最后就是数据体刚才分析到前12个字节,继续13-16字节 表示 fmt ,波形格式标志102 109 116 032 ------ a.wav102 109 116 032 ------ b.wav102 109 116 032 ------ c.wav102 109 116 032 ------ d.wav可以看到都一样17-20字节 过滤字节(一般为00000010H)016 000 000 000 ------ a.wav016 000 000 000 ------ b.wav016 000 000 000 ------ c.wav016 000 000 000 ------ d.wav可以看到都一样21-22字节 整数 格式种类(值为1时,表示数据为线性PCM编码)001 000 ------ a.wav001 000 ------ b.wav001 000 ------ c.wav001 000 ------ d.wav也是一样23-24字节 整数 通道数,单声道为1,双声道为2001 000 ------ a.wav001 000 ------ b.wav001 000 ------ c.wav001 000 ------ d.wav表示都是单声道,特意用格式工厂转了一个2声道的,变成 002 000 正确25-28 采样频率034 086 000 000 ------ a.wav 十进制 22050034 086 000 000 ------ b.wav 十进制 22050034 086 000 000 ------ c.wav 十进制 22050034 086 000 000 ------ d.wav 十进制 220504个文件都一样29-32 每次采样的数据块大小 它跟下面的采样精度有关034 086 000 000 ------ a.wav 十进制 22050034 086 000 000 ------ b.wav 十进制 22050034 086 000 000 ------ c.wav 十进制 22050068 172 000 000 ------ d.wav 十进制 44100注意不同的地方33-34 整数 它 = 通道数 * 采样精度 / 8001 000 ------ a.wav001 000 ------ b.wav001 000 ------ c.wav002 000 ------ d.wav35-36 整数 采样精度是多少位008 000 ------ a.wav 8位008 000 ------ b.wav 8位008 000 ------ c.wav 8位016 000 ------ d.wav 16位37-40 表示“data”或者“LIST”四个字符,data表示单个音乐,LIST表示合成?或许是这样,因为我的d.wav 是在格式工厂里用 abc合成的100 097 116 097 ------ a.wav100 097 116 097 ------ b.wav100 097 116 097 ------ c.wav076 073 083 084 ------ d.wav41-44 整数 数据体长度(字节数)166 043 000 000 ------ a.wav 十进制11174 已检验正确197 046 000 000 ------ b.wav 十进制11973 已检验差一个字节 基本正确083 048 000 000 ------ c.wav 十进制12371 已检验差一个字节 基本正确026 000 000 000 ------ d.wav 十进制26 严重错误 格式工厂转换问题