问题描述
我正在尝试合并2个音频文件。
我尝试创建AVMutableComposition
,然后为每个音频创建2个AVURLAsset
,并使用AVAssetExportSession
组合音频文件并且它可以正常工作,但是这种情况下的主要问题是{{ 1}}不支持导出到 .flac ,并支持 .m4a ,这是有损压缩,不适合我的情况。
解决方法
我解决了我的问题,如果有人想知道,这是解决方案:
我使用的是AVAssetExportSession
,而不是AVAudioEngine
,但是要使其正常工作,您必须至少连接1个AVAudioPlayerNode
。
然后从要合并并安排它们依次在连接的AVAudioFile
上播放的音频文件中创建2 AVAudioPlayerNode
。之后,需要AVAudioPCMBuffer
来在while
循环中手动渲染帧并将其存储在磁盘上的某种容器中(为此,我使用了 .mov 临时文件)。
完成所有操作后,您只需将文件重命名为正确的 .flac 文件即可使用。