#2
WAV是RIFF文件的一种。
虽然它可以存使用其他的编码格式,但是这需要支持的播放器实现。
所以还是使用PCM编码好了。
(其实我希望使用IEEE 32-bit float编码,那是HanakoSakura音轨所使用的)
RIFF文件是一种树状文件
4 RIFF块ID 'R','I','F','F'
4 RIFF块大小 <文件长度-8>
4 RIFF块标识符 'W','A','V','E'
4 fmt块ID 'f','m','t',' ' --格式
4 fmt块大小 16
2 AudioFormat 1 (编码格式,1为PCM编码)
2 NumChannels <声道数>
4 SampleRate <采样率>
4 ByteRate <每秒字节数>
2 BlockAlign <块对齐>
2 BitPerSample <采样位数>
4 LIST块ID 'L','I','S','T' --歌曲信息
4 LIST块大小 <>
4 LIST块标识符 'I,'N','F','O'
4 IART块ID 'I','A','R','T' --歌手
4 IART块大小 <>
? IART数据 <歌手名,以2个0x00结尾的宽字符串>
4 INAM块ID 'I','N','A','M' --歌曲名
4 INAM块大小 <>
? INAM数据 <歌曲名,宽字符串>
4 IPRT块ID 'I','P','R','T' --专辑
4 IPRT块大小 <>
? IPRT数据 <专辑名,宽字符串>
4 ISFT块ID 'I','S','F','T'
4 ISFT块大小 <>
? ISFT数据 <? MetaData?>
4 data块ID 'd','a','t','a' --音频数据
4 data块大小 <>
? data数据 <音频数据>
具体不打算实现了
毕竟必须的只有RIFF
,fmt
和data
LIST之类的块是可选的,供某些播放器读取。
-EOF-