我正在实现这个音调发生器程序,效果很好:
我想不通的是为什么下面两行代码:
BW.Write(Sample)
BW.Write(Sample)
一个“写”是有道理的,但为什么第二个“写”呢?
我正在实现这个音调发生器程序,效果很好:
我想不通的是为什么下面两行代码:
BW.Write(Sample)
BW.Write(Sample)
一个“写”是有道理的,但为什么第二个“写”呢?
该示例有点神秘,但波形文件配置为 2 个通道,因此两次写入只是将相同的音频数据发送到两个通道。
波头是这个硬编码位:
Dim Hdr() As Integer = {&H46464952, 36 + Bytes, &H45564157, _
&H20746D66, 16, &H20001, 44100, _
176400, &H100004, &H61746164, Bytes}
哪个解码意味着:
H46464952 = 'RIFF'(小端序) 36+Bytes = 头部长度 + 数据长度 H45564157 = 'WAVE'(小端序) H20746D66 = 'fmt'(小端序) 16 = fmt 块的长度(总是 16) H20001 = 0x0001:PCM, 0x0002:2 个通道 44100 = 采样率 176400 = sampleRate*numChannels*bytesPerSample = 44100*2*2 H100004 = 0x0004:numChannels*bytesPerSample, 0x0010:bitsPerSample (16) H61746164 = '数据' 字节 = 数据块的大小