直接调用音频单元而不是回调 iOS

Posted

技术标签:

【中文标题】直接调用音频单元而不是回调 iOS【英文标题】:Direct calls to Audio Unit instead of callbacks iOS 【发布时间】:2012-06-04 09:35:45 【问题描述】:

是否有对音频单元的直接调用,这样我就不必依赖系统回调输入和渲染回调(我可以用计时器来模拟)。比如有 AudioUnitRender 可以从音频单元拉取数据,是否还有其他 API 可以将数据推送到音频单元?

【问题讨论】:

如果您删除了“RemoteIO”要求,可能会是一个更好的问题... 感谢您的建议,已编辑。 【参考方案1】:

虽然我不知道 CoreAudio API 中有特定的类似推送的调用,但您可以通过在单独的 C 函数中进行 DSP 处理来轻松完成此操作,该 C 函数将浮点缓冲区传递给它。这样,render callback就可以在那里完成繁重的工作,如果您需要进行基于push的处理,您也可以手动调用该函数。

【讨论】:

【参考方案2】:

音频单元的行为是拉模型。输出请求数据播放,如果有,则播放。

开始录制的常用方法是在输出回调中调用 Render。渲染器将​​从记录器中获取可以播放的数据,或者只是将记录的数据保存到其他地方并将播放器设置为静音。

【讨论】:

以上是关于直接调用音频单元而不是回调 iOS的主要内容,如果未能解决你的问题,请参考以下文章

什么会影响音频单元渲染回调周期(周期)?

音频单元录制噪音

音频输出单元的输入回调中允许哪些操作

音频回调线程中的内存泄漏(iOS)

iOS,音频队列:缓冲区大小不是恒定的

Xamarin Monotouch 音频单元回调