I have done this. To do the concatenation you first need to load the audio files into AVAssets. Specifically, you'll want to use a subclass of AVAsset called AVURLAssets, which can load up your URL: Loading AVAsset. You can then add each AVAsset
into a AVMutableComposition, which is designed to contain multiple AVAssets
. Once you've gotten it loaded into AVMutableComposition
, you can use AVAssetExportSession to write the composition to a file.
Note that AVAssetExportSession
doesn't give you much control over the file output (it'll export audio into a m4a file). If you need more control over the type of output, you'll need to use the AVAssetReader and AVAssetWriter classes to perform the export rather than the AVAssetExportSession
. These classes are much more complex to use than AVAssetExportSession
and it pays here to understand straight C.
I will also point out that there are no Apple-provided options to write out MP3 files. You can read them, but you can't write them. It's generally best to stick with a m4a/aac format.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…