我正在尝试使用 MTAudioProcessingTap 实现一个简单的间隙消除算法。
在我的process()
函数中,我正在调用MTAudioProcessingTapGetSourceAudio()
以检索音频。但是,如果我删除一个间隙,我需要检索更多音频以填充输出缓冲区,并且GetSourceAudio()
再次调用似乎给我完全相同的输入音频。
如果我返回不到numberFrames
out of process()
,iOS 会用沉默填补空白,这不适合我的应用程序 - 我想提前时间。
如果我从 中检索不到numberFrames
帧GetSourceAudio()
,它只返回前 n 帧 - 从不返回后面的帧。
所以:
- 有没有办法让 MTAudioProcessingTap 跳过时间?这真的是一个样本中的样本类型的交易吗?
- 如果您无法从 请求额外数据
GetSourceAudio()
,并且不检索所有音频会导致输出出现间隙,那么让您请求特定数量的帧有什么意义?GetSourceAudio()
此外,如果参数必须始终与参数中指定的完全一致,我们为什么还要调用process()
呢?
9 月 30 日更新:我已经切换到 TheAmazingAudioEngine,它很高兴为我提供我想要的尽可能多的音频。但是,我仍然对 MTAudioProcessingTap 的设计感到困惑。