0

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

你能告诉我怎么做吗?

谢谢!

4

1 回答 1

5

选项1:

参考这个链接:

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

该帖子中无效名称的答案说:

MP3 是一种流格式,这意味着它在文件的开头或结尾没有一堆元数据。虽然这有很多缺点,但优点之一是您可以将 MP3 文件连接到一个文件中并播放。

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

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

选项 2:

在 iphone 中将两个 .caf 音频文件合并为一个音频文件

Midhere在这篇文章中的回答:

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

请找到这些示例代码的链接(12)……希望这对您有所帮助……祝您好运。:)

所以尝试将其转换为另一种格式,然后尝试组合它。

选项 3:

参考:

将两个 CAF 文件连接在一起

dineth在这篇文章中回答:

如果有人想知道答案,有办法做到这一点。您必须使用 AudioFiles API 调用。基本上,你会:

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

就是这样!

选项 4:

略有不同的注释。

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

试试这个链接:

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

希望这可以帮助。

于 2012-07-27T05:25:30.547 回答