【问题标题】:Combining 2 audio files is Swift组合 2 个音频文件是 Swift
【发布时间】:2020-08-30 09:00:05
【问题描述】:
我正在尝试合并 2 个音频文件。
主要问题是音频文件是无损.flac文件。
我尝试创建AVMutableComposition,然后为每个音频创建 2 个AVURLAsset,并使用AVAssetExportSession 组合音频文件,它可以工作,但这种情况下的主要问题是AVAssetExportSession 不支持导出到 .flac 并支持 .m4a 这是有损压缩,不适合我的情况。
谁能建议如何获取 .flac 音频文件?
【问题讨论】:
标签:
ios
swift
avfoundation
avassetexportsession
avaudiofile
【解决方案1】:
我解决了我的问题,如果有人想知道,这里是解决方案:
我使用的是AVAudioEngine,而不是AVAssetExportSession,但要使其工作,您必须至少将1 个AVAudioPlayerNode 连接到它。
然后从想要合并的音频文件中创建 2 个AVAudioFile,并安排它们在连接的AVAudioPlayerNode 上一个接一个地播放。之后需要AVAudioPCMBuffer 在while 循环中手动渲染帧并将其存储在磁盘上的某种容器上(我为此使用了 .mov 临时文件)。
一切完成后,您只需将文件重命名为正确的 .flac 文件即可。