Core Audio - 将数据写入音频文件的开头或中间(结尾以外的某个地方)

Core Audio - Write data to beginning or middle of audio file (somewhere other than the end)

所以,我正在开发一个录音 iOS 应用程序。在我的应用程序中,我需要在用户选择的文件(在文档目录中)的任何位置写入音频,这将覆盖那里的任何音频。

示例:我录制了 3 分钟的音频,滚动回第二分钟,再次开始录制 10 秒。现在,2:00 - 2:10 包含新音频,旧音频消失了(本例中音频文件没有变长)。

我正在使用 EZAudio,我可以根据需要多次录制和暂停,并且它会一直附加到最后。我打算使用 ExtAudioFileSeek 在文件中向后查找并从那里记录,但你只能在文件以只读方式打开时使用它。

我不想要的:我不想记录到不同的文件,并使用此方法将两个文件附加在一起: 与此相关的加载时间很长。 iOS 语音备忘录应用程序可即时将文件附加在一起。

ExtAudioFileWriteAsync可以用来在开头追加音频吗?还是在指定的样本位置?我应该看看另一种方法吗?

我认为ExtAudioFileSeek 在录音时未定义。我使用 ExtAudioFile 构建的 AudioFile API。唯一的问题是您必须自己进行格式转换(如有必要,我会使用 AudioConverterRef)。但是一旦你得到了所有这些,你就可以调用 AudioFileWritePackets,它带有一个 inStartingPacket 参数,这样你就可以在文件的任何地方写入。您还可以使用 ExtAudioFileWrapAudioFileID 将 AudioFileRef 包装在 ExtAudioFileRef 中进行播放,同时文件仍处于打开状态以进行录制。 Headers 在 AudioFile.h 和 AudioConverter.h 中。