如何使用libsndfile在音频文件中打印静音?

时间:2013-06-15 23:54:59

标签: c audio wav libsndfile

我正在用libsndfile做一些简单的简单程序,目前正在尝试找到一种在音频文件中打印静音的方法 - 而不是将其他文件静音。表面上看,我正在制作鼓机。 在给定的时刻,我只能写一个输入的音频文件的长度,如果我愿意的话,将它们相互附加。 我希望能够对这个看似超级简单的任务有更深入的了解。或者如果实际上这么简单,那就是一记耳光。

谢谢!

1 个答案:

答案 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);
}