结合两个音频文件是Swift

问题描述

我正在尝试合并2个音频文件

主要问题是音频文件是无损的 .flac 文件

我尝试创建AVMutableComposition,然后为每个音频创建2个AVURLAsset,并使用AVAssetExportSession组合音频文件并且它可以正常工作,但是这种情况下的主要问题是{{ 1}}不支持导出到 .flac ,并支持 .m4a ,这是有损压缩,不适合我的情况。

任何人都可以建议如何获取 .flac 音频文件吗?

解决方法

我解决了我的问题,如果有人想知道,这是解决方案:

我使用的是AVAssetExportSession,而不是AVAudioEngine,但是要使其正常工作,您必须至少连接1个AVAudioPlayerNode。 然后从要合并并安排它们依次在连接的AVAudioFile上播放的音频文件中创建2 AVAudioPlayerNode。之后,需要AVAudioPCMBuffer来在while循环中手动渲染帧并将其存储在磁盘上的某种容器中(为此,我使用了 .mov 临时文件)。 完成所有操作后,您只需将文件重命名为正确的 .flac 文件即可使用。