2

我四处搜索,但没有找到任何从 RemoteIO 音频单元中保存音频的好的示例或教程。

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

音频播放效果很好。我想添加将音频输出保存到文件的功能。我会在 RemoteIO 的渲染回调中执行此操作吗?

非常感谢任何提示或指向示例代码!

4

1 回答 1

1

由于音频单元回调的严格延迟要求,不应在 RemoteIO 回调中执行任何同步文件访问(或任何其他可能阻塞的调用,涉及内存管理或操作系统锁定操作)。相反,只需将音频数据复制到另一个缓冲区(例如更大的循环缓冲区),并设置一些状态来指示已复制了多少数据。然后,在另一个线程中,当数据量足够时,将该缓冲区的内容写入文件。这可能是原始 PCM 文件,稍后可以由 AVAssetReader/Writer 转换为另一种音频文件类型。

于 2012-04-06T16:55:25.670 回答