3

我目前在 iPhone 上使用音频队列来录制和播放音频。

我想做的是录制一些音频,允许用户暂停录制队列,并在音频中来回搜索以选择他们可以再次开始录制的位置。

通过使播放 AudioQueueBuffer 大小足够小,我已经克服了寻找问题,以便播放音频队列回调以允许用户在来回调整滑块时使用滑块控件听到音频的速率发生。

我想我可以通过设置我从音频录制队列回调调用的 AudioFileWritePackets 函数的 inStartingPacket 参数来实现在新位置的录制。

问题是这只会在先前录制的音频上插入音频。文件长度显然不会改变,所以如果用户倒退并录制比以前更少的音频,旧音频在新录制的音频结束后仍然保留。

有没有一种方法可以让 AudioFile 在用户开始插入新音频时截断,是否有其他方法可以从插入位置开始删除旧音频,或者有更好的方法来完成这项任务?

谢谢

4

1 回答 1

3

我也有同样的问题。我目前的方法是将新音频录制到一个单独的文件中,然后将第一个文件的第一部分与第二个文件连接起来,将结果写入第三个文件,然后将第三个文件重命名为第一个文件和删除第二个文件。连接操作需要使用 AudioFile API 编写一个自定义但相当简单的函数。

我也很想听到更多开明的想法,或者看到一个AudioFileTruncate()功能。

于 2010-04-20T22:19:08.487 回答