如何使用iPhone SDK合并两个音频文件?

mee*_*tpd 0 iphone cocoa-touch objective-c caf ios

我想在我的iPhone App中合并两个.caf音频文件?

你能告诉我怎么样吗?

谢谢!

Par*_*att 5

选项1:

请参考此链接:

将多个音频文件合并为一个

该帖子中无效名称的回答是:

MP3是一种流格式,这意味着它在文件的前端或末尾没有一堆元数据.虽然这有很多缺点,但其中一个优点是你可以将MP3文件连接成一个文件并且它会播放.

这几乎是你通过连接到NSMutableData所做的事情,其缺点是你可能会耗尽内存.另一种选择是使用NSFileHandle在磁盘上构建文件.

这不适用于大多数文件格式(aac/m4a,aif,caf等).MP3实际上只是一个转储到磁盘的流,帧头中的元数据(或ID3中的元数据,隐藏在帧之间),这就是它的工作原理.

选项2:

将两个.caf音频文件合并到iphone中的单个音频文件中

在这篇文章中通过Midhere回答:

您可以使用ExtAudioFileService来完成.在ios开发人员库中,他们提供了两个将一个音频文件转换为另一种格式的示例.在这些中,他们打开一个用于读取的音频文件和另一个用于写入的文件(转换后的音频).您可以更改或更新代码以从两个文件中读取,并将它们以相同格式(caf)或压缩格式写入一个输出文件.首先,您打开第一个音频文件并从中读取每个数据包并将其写入新的音频文件.完成第一个音频文件后,关闭文件并打开第二个音频文件进行读取.现在从第二个音频文件中读取每个数据包并写入新创建的音频文件并关闭第二个音频文件和新的音频文件.

请找到链接(1,2,这些示例代码)....希望这可以帮助你......和好运气.:)

因此,尝试将其转换为另一种格式,然后尝试将其组合.

OPTION-3:

参考:

将两个CAF文件连接在一起

在这篇文章中通过dineth回答:

如果有人热衷于知道答案,那么有办法做到这一点.您必须使用AudioFiles API调用.基本上,你会:

使用具有正确参数(比特率等)的AudioFileCreate创建新的音频文件.打开你的第一个文件,读取数据包并将它们写入新创建的文件.打开你的第二个文件并执行相同的操作.写完第一个文件后,确保你的计数器没有被清零.AudioFileClose - 你已经完成了!注意事项:对于本地文件,您必须运行一个方法来转义空格

就是这样!

OPTION-4:

略有不同的说明.

我认为你正在CAF中录制文件并尝试将它们组合起来.所以在这种情况下,你最终可以尝试以除caf之外的其他格式录制文件.

试试这个链接:

iOS:以caf以外的其他格式录制音频

希望这可以帮助.