写入WAV文件时定期创建静音

我正在尝试获取一个wav文件,并以1秒的间隔在其中创建静默间隙。沉默的间隙并不是暂停文件然后再次播放,它们具有“静音”功能,因此,如果输入的wav文件长10秒,那么输出文件的长度也将长10秒。

我可以访问输入的wav文件的所有属性,例如缓冲区大小,恐怕我不知道如何在这种情况下从所说的文件中读取内容。我最好的猜测是这样的:

int gapLength = 1 * sampleRate;

for (int f = 0; f < numOfSamples; f++) {
    if (f <= gapLength) {
        buffer[f] = silence
    }
    else {
        buffer[f] = sample[f] from audio input
    } 
}

sf_writef_double(sndFile, buffer, numOfSamples);

取消此操作后,我需要找出如何在第一次之后再次进行for循环检查间隙,以及以某种方式从输入的wav文件中获取sample [f]-也许我可以遍历两个wav文件同时?任何建议都将是一个很大的帮助。