话不多少,直接上代码,代码中讲解使用注意
下文音频文件拼接,音轨合成统称为合成
let composition:AVMutableComposition =AVMutableComposition() //想要合成音频文件,第一步,必须创建AVMutableComposition,类似于很多api这个后缀也为composition,意思可以理解为合成物,但不是最终产生的文件
let appendedAudioTrack:AVMutableCompositionTrack = composition.addMutableTrackWithMediaType(AVMediaTypeAudio, preferredTrackID: kCMPersistentTrackID_Invalid)
//此处创建的为音轨属性,可以理解为合成物所需要的原料 ,对音轨的加工都在这个方法里面进行,此处为音频合成MediaType为 AVMediaTypeAudio
let url =getAudioUrl()
//本地音频文件的url
let originalAsset:AVURLAsset =AVURLAsset(URL: url, options:nil)
//将源文件转换为可处理的资源(初始资产),可理解为初次加工
let assetTrack1 = originalAsset.tracksWithMediaType(AVMediaTypeAudio)[0]
//将初始资产再加工生成可用于拼接的(音轨资产) tracksWithMediaType()输出为[AVAssetT