1

考虑Apple 提供的aurioTouch示例应用程序。我想模拟对录制音频的长时间处理,并通过在渲染回调方法中引入 0.1 秒的延迟来修改示例:PerformThru. 这会导致通过 iPhone 的扬声器或耳机播放失真的音频和静态噪音。即使在应用程序中的静音按钮打开时也会听到噪音,该按钮基本上将静音输出到 AudioUnit 输出总线。

PerformThru当主机的回调函数(在我们的示例中是)没有及时返回时,任何人都可以详细解释低级别发生的情况吗?

为什么性能不佳的回调函数会使 iPhone 播放噪音?我了解回调函数中的代码必须高度优化。我仍然想知道是否有可能防止噪音发生。

是否可以修改 aurioTouch 示例以使 AudioUnit 只进行录制并完全关闭播放?

4

1 回答 1

2

如果你想引入延迟,那么你需要通过缓冲来做到这一点,而不是简单地延迟回调。例如,对于 0.1 秒和 44.1 kHz 的采样率,您需要额外缓冲 4410 个采样。最初您将传递 4410 0s,然后开始传递您的缓冲(延迟)样本。

于 2010-02-06T09:10:46.767 回答