0

我有一堆音频文件(mp3、aac 等),我想将它们连接成一个音频文件。有没有人这样做过?

4

2 回答 2

3

我已经做到了。要进行连接,您首先需要将音频文件加载到AVAssets中。具体来说,您需要使用名为AVURLAssets的 AVAsset 子类,它可以加载您的 URL:Loading AVAsset。然后,您可以将每个添加AVAssetAVMutableComposition中,该组合旨在包含多个AVAssets. 将其加载到AVMutableComposition中后,您可以使用AVAssetExportSession将合成写入文件。

请注意,AVAssetExportSession这并不能让您对文件输出进行太多控制(它将音频导出到 m4a 文件中)。如果您需要对输出类型进行更多控制,则需要使用AVAssetReaderAVAssetWriter类来执行导出,而不是使用AVAssetExportSession. 这些类比使用起来要复杂得多AVAssetExportSession,在这里理解纯 C是值得的。

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

于 2012-05-17T12:22:11.433 回答
0

This is fairly simple using ExtAudioFile. In pseudocode what you want to do is:

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
于 2012-05-17T12:01:39.803 回答