2009-10-17 83 views
4

我正在使用AVAudioRecorder通过停止使用NSMutableData对象并使用appendData方法将该数据附加到以前的录制文件的记录,每隔15秒保存一个音频文件。在NSData上将音频文件合并为一个iPhone

然后我再次以相同的方法记录,以便记录是“连续的”。问题是,只要你[录音机停止],它就会按照指定的URL保存/关闭音频文件。这很好,因为我可以用它填充NSData对象并将其附加到我的NSMutableObject,然后写入相同的文件url。

问题是一定是错误的标题信息,因为它只播放音频的第一部分。

我的问题是如何正确合并文件,即使像合并两个音频文件一样简单,并让AVAudioPlayer将其视为一个文件。当我将第二张录音附加到第一张录音时,我想到的可能是文件长度/持续时间的标题信息。

任何想法?

回答

1

音频文件有一个标题,它指定文件中有多少个采样以及数据块应该存在多长时间。附加到现有文件的任何数据都将被忽略。这就是为什么你只能听到第一个录音。

您不能像添加原始数据一样追加或连接音频文件。您必须从每个文件中提取样本数据块,仅对数据进行连接,然后使用正确填写的数据长度和样本数字段以及最终连接的声音数据块本身编写新文件头。

1

iPhone音频API允许您创建非常大/长的音频文件,而无需执行任何过于复杂的操作。看到示例代码SpeakHere,它会创建一个随时间增长的声音文件,可能会达到一些非常大的尺寸。

相关问题