ios - 组合/连接多个音频文件

时间:2012-05-17 01:49:51

标签: ios core-audio

我有一堆音频文件(mp3,aac,无论如何),我想将它们连接成1个音频文件。有人曾经这样做过吗?

2 个答案:

答案 0 :(得分:2)

我做到了这一点。要进行连接,首先需要将音频文件加载到AVAssets。具体来说,您将要使用名为AVURLAssets的AVAsset子类,它可以加载您的网址:Loading AVAsset。然后,您可以将每个AVAsset添加到AVMutableComposition,该AVAssetExportSession旨在包含多个AVAssets。在您将其加载到AVMutableComposition后,您可以使用AVAssetReader将合成内容写入文件。

请注意,AVAssetExportSession并未对文件输出进行过多控制(它会将音频导出到m4a文件中)。如果您需要更多地控制输出类型,则需要使用AVAssetWriter和{{3}}类来执行导出而不是AVAssetExportSession。这些类的使用要比AVAssetExportSession复杂得多,这里需要直接了解C。

我还要指出,没有Apple提供的选项来写出MP3文件。你可以阅读它们,但你不能写它们。通常最好坚持使用m4a / aac格式。

答案 1 :(得分:0)

使用ExtAudioFile这很简单。在伪代码中,您要做的是:

1. Open the file you'll be using for output (ExtAudioFileOpen)
2. Set the client data format you'll use for ExtAudioFileWrite
3. For each input file you want to process:
    a. Open the file using ExtAudioFile
    b. Set the client data format used for reading to the same client format used in the output file for writing
    c. Loop through the input file using ExtAudioFileRead and save the data to the output file using ExtAudioFileWrite
    d. Close the input file
4. Close the output file