我正在尝试使用MTAudioProcessingTap实现一个简单的间隙删除算法。
在我的process()
函数中,我正在调用MTAudioProcessingTapGetSourceAudio()
来检索音频。但是,如果我删除了一个间隙,我需要检索 more 音频以填充输出缓冲区,再次调用GetSourceAudio()
似乎给我完全相同的输入音频。
如果我从numberFrames
返回的时间少于process()
,则iOS会填补空白,这不符合我的应用程序 - 我想提前准备。
如果我从numberFrames
中检索到少于GetSourceAudio()
个帧,则只返回前n帧 - 而不是后面的帧。
所以:
GetSourceAudio()
请求额外数据,并且不检索所有音频会导致输出中出现空白,那么让您询问特定数量的帧有什么意义?此外,如果参数必须始终与GetSourceAudio()
参数中指定的完全一致,为什么我们甚至需要调用process()
?9月30日更新:我已切换到TheAmazingAudioEngine,很高兴能为我提供尽可能多的音频。但是,我仍然对MTAudioProcessingTap的设计感到困惑。