6

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

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

如果我返回不到numberFramesout of process(),iOS 会用沉默填补空白,这不适合我的应用程序 - 我想提前时间。

如果我从 中检索不到numberFramesGetSourceAudio(),它只返回前 n 帧 - 从不返回后面的帧。

所以:

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

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

4

0 回答 0