从RemoteIO保存audio的示例?

我已经四处search,但还没有find任何良好的例子或从RemoteIOaudio单元保存audio教程。

我的设置:使用MusicPlayer API,我有几个AUSamplers – > MixerUnit – > RemoteIO

audio播放效果很好。 我想添加function来保存audio输出到一个文件。 我会在RemoteIO的渲染callback中执行此操作吗?

任何提示或示例代码指针非常赞赏!

由于audio单元callback的严格等待时间要求,不应该在RemoteIOcallback中进行任何同步文件访问(或任何其他可能阻塞的调用,涉及内存pipe理或操作系统locking操作)。 相反,只需将audio数据复制到另一个缓冲区(例如一个较大的循环缓冲区),并设置一些状态来指示复制了多less数据。 然后,在另一个线程中,当数据量充足时,将该缓冲区的内容写出到文件中。 这可能是一个原始的PCM文件,它可以被AVAssetReader / Writer转换成另一个audio文件types。