VS2010では手動で次のことを行っています。1.「1.wav」と「2.wav」の2つのWaveファイルを読み込みます。2.2.wavを1.wavの中央に挿入します。3.結果のウェーブストリームを出力ファイル「out.wav」に書き込みます。
これで、次の構造を使用してWaveファイルを正常に読み取ることができます。
typedef struct {
char ChunkID[4]; /* RIFF Header */ //Magic header
unsigned long ChunkSize; /* RIFF Chunk Size */
char Format[4]; /* WAVE Header */
char Subchunk1ID[4]; /* FMT header */
unsigned long Subchunk1Size; /* Size of the fmt chunk */
unsigned short AudioFormat; /* Audio format 1=PCM,6=mulaw,7=alaw, 257=IBM Mu-Law, 258=IBM A-Law, 259=ADPCM */
unsigned short NumChannels; /* Number of channels 1=Mono 2=Sterio */
unsigned long SampleRate; /* Sampling Frequency in Hz */
unsigned long ByteRate; /* bytes per second */
unsigned short BlockAlign; /* 2=16-bit mono, 4=16-bit stereo */
unsigned short BitsPerSample; /* Number of bits per sample */
char Subchunk2ID[4]; /* "data" string */
unsigned long Subchunk2Size; /* Sampled data length */
BYTE Data[18000];
} WavFile;
ただし、2つのwaveファイルのパラメーターの一部は同じではありません。たとえば、1.wavのSampleRateが8000、2.wavのSampleRateが44100の場合、out.wavのSampleRateはどうなりますか?