我正在用libsndfile做一些简单的简单程序,目前正在尝试找到一种在音频文件中打印静音的方法 - 而不是将其他文件静音。表面上看,我正在制作鼓机。 在给定的时刻,我只能写一个输入的音频文件的长度,如果我愿意的话,将它们相互附加。 我希望能够对这个看似超级简单的任务有更深入的了解。或者如果实际上这么简单,那就是一记耳光。
谢谢!
答案 0 :(得分:1)
音频文件中的静音只是一堆连续的零值样本。
在文件的当前写位置插入N帧静音就像:
void sf_insert_silence (SNDFILE *file, int channels, int frames)
{ short silence [frames * channels];
memset (silence, 0, sizeof (silence));
sf_writef_short (sndfile, silence, frames);
}