gpt4 book ai didi

ios - AudioKit 缓冲区消耗大量内存

转载 作者:搜寻专家 更新时间:2023-10-31 22:18:46 26 4
gpt4 key购买 nike

打开文件或复制文件会使缓冲区的大小爆炸。

tape1.write(from: tape2.pcmBuffer)

同样的事情发生在保存文件然后再次打开它之后(即合成之后)

AKAudioFile(forReading: url, commonFormat: .pcmFormatFloat32, interleaved: true)

这也需要很多内存,15 分钟的录音大约需要 300mb 内存,而 iPhone 5s 无法处理。有没有办法做得更好?如何减少缓冲区大小?

最佳答案

要复制文件,您应该使用 FileManager.copyItem FileManager.default.copyItem(在:src,到:dst)。如果您的意图如此,您也可以毫无问题地从同一个 URL 创建两个文件播放器。

AKAudioFile 在实例化时不会读入缓冲区,因此内存使用在别处。 AKAudioFile.floatChannelData 和 AKAudioFile.pcmBuffer 会将整个文件读入缓冲区,从文件创建 AKAudioPlayer。

如果你正在播放长文件,你应该尝试AKClipPlayer .它从磁盘流式传输文件,因此内存使用率保持较低。

let clip = AKFileClip(url: url)
let clipPlayer = AKClipPlayer(clips: [clip])

关于ios - AudioKit 缓冲区消耗大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46640433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com