是否可以使用MTAudioProcessingTap跳过输入样本?

Ian*_*son 6 audio core-audio ios

我正在尝试使用MTAudioProcessingTap实现一个简单的间隙消除算法.

在我的process()功能中,我打电话MTAudioProcessingTapGetSourceAudio()来检索音频.但是,如果我删除一个间隙,我需要检索更多的音频以填充输出缓冲区,并GetSourceAudio()再次调用似乎给我完全相同的输入音频.

如果我回到小于numberFrames出来的process(),iOS的填满了沉默,这不适合我的应用程序的空白-我要提前时间.

如果我检索的numberFrames帧少于帧GetSourceAudio(),它只返回前n帧 - 而不是后面的帧.

所以:

  • 有没有办法让MTAudioProcessingTap跳过时间?它真的是一个样本在一个样本输出类型的交易?
  • 如果您无法请求额外的数据GetSourceAudio(),并且不检索所有音频会导致输出中的间隙,那么让您询问特定数量的帧有什么意义呢?此外,GetSourceAudio()如果参数必须始终与参数中指定的完全一致,为什么我们甚至需要调用process()

9月30日更新:我已经切换到TheAmazingAudioEngine,很高兴能给我尽可能多的音频.但是,我仍然对MTAudioProcessingTap的设计感到困惑.