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

如何使用iPhone SDK合并两个音频文件?,iphone,objective-c,ios,cocoa-touch,caf,Iphone,Objective C,Ios,Cocoa Touch,Caf,我想在我的iPhone应用程序中合并两个.caf音频文件 你能告诉我怎么做吗 谢谢 选项一: 请参阅此链接: 在那篇文章中,invalidname的回答是: MP3是一种流格式,这意味着它根本没有一堆元数据 文件的前面或结尾。虽然这有很多缺点,但有一个 好处之一是,您可以将MP3文件连接到一个 一个文件就可以播放了 这就是通过连接到 NSMutableData,其缺点是您可能会用完 记忆。另一种选择是使用 NSFileHandle 这不适用于大多数文件格式(aac/m4a、aif、caf等)。

我想在我的iPhone应用程序中合并两个.caf音频文件

你能告诉我怎么做吗


谢谢

选项一:

请参阅此链接:

在那篇文章中,invalidname的回答是:

MP3是一种流格式,这意味着它根本没有一堆元数据 文件的前面或结尾。虽然这有很多缺点,但有一个 好处之一是,您可以将MP3文件连接到一个 一个文件就可以播放了

这就是通过连接到 NSMutableData,其缺点是您可能会用完 记忆。另一种选择是使用 NSFileHandle

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

选项2:

在这篇文章的中间部分回答:

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

请查找这些示例代码的链接(,)。。。。 希望这对你有帮助……祝你好运。:)

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

选项3:

参考:

dineth在本帖中的回答:

如果有人想知道答案,有一种方法可以做到。你 必须使用AudioFilesAPI调用。基本上,你会:

使用AudioFileCreate和正确的 参数(比特率等)。打开第一个文件,读取数据包并 将它们写入新创建的文件。打开第二个文件并执行以下操作: 一样。请确保您的计数器在写入 第一个文件。AudioFileClose——你完成了!注意事项:用于 在本地文件中,必须运行一个方法来转义空格

就这样

选项4:

用一个稍微不同的音符

我认为您正在用CAF录制文件,并尝试将它们组合起来。因此,在这种情况下,您最终可以尝试使用CAF以外的其他格式录制文件

请尝试以下链接:


希望这有帮助。

选项1:

请参阅此链接:

在那篇文章中,invalidname的回答是:

MP3是一种流格式,这意味着它根本没有一堆元数据 文件的前面或结尾。虽然这有很多缺点,但有一个 好处之一是,您可以将MP3文件连接到一个 一个文件就可以播放了

这就是通过连接到 NSMutableData,其缺点是您可能会用完 记忆。另一种选择是使用 NSFileHandle

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

选项2:

在这篇文章的中间部分回答:

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

请查找这些示例代码的链接(,)。。。。 希望这对你有帮助……祝你好运。:)

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

选项3:

参考:

dineth在本帖中的回答:

如果有人想知道答案,有一种方法可以做到。你 必须使用AudioFilesAPI调用。基本上,你会:

使用AudioFileCreate和正确的 参数(比特率等)。打开第一个文件,读取数据包并 将它们写入新创建的文件。打开第二个文件并执行以下操作: 一样。请确保您的计数器在写入 第一个文件。AudioFileClose——你完成了!注意事项:用于 在本地文件中,必须运行一个方法来转义空格

就这样

选项4:

用一个稍微不同的音符

我认为您正在用CAF录制文件,并尝试将它们组合起来。因此,在这种情况下,您最终可以尝试使用CAF以外的其他格式录制文件

请尝试以下链接:

希望这有帮助