gpt4 book ai didi

swift - AudioKit AKWaveTable 内存泄漏

转载 作者:行者123 更新时间:2023-11-28 05:51:15 25 4
gpt4 key购买 nike

我不知道是我的问题还是我发现了 AKWaveTable 的某种问题。

基本上,当我加载一个音频文件(一个简短的文件,大约 7 秒)并将其分配给 AKWaveTable 进行采样,然后我尝试用另一个文件替换它时,新文件被加载,但分配的内存不断增长.

伪代码如下:

class Element {
var player:AKWaveTable?
//other stuff

init(_ path:String){
let temp_file = try AKAudioFile(readFileName: path)

self.player = AKWaveTable(audioFile: temp_file)

}
}

在我的代码中的某个时刻:

//declare array of class Element
var sample:[Element] = []

//and put something into it's elements
sample[n] = Element("path/to/file.wav")

//do some stuff

//then replace that sample with another file
sample[n] = Element("path/to/another/file.wav")

使用 AKPlayer 完成的相同过程工作正常,但我真的需要 AKWaveTable 以获得更好的性能。

在连续替换音频样本后,分配的内存增长非常快,高达 900MB!

我做错了什么?任何帮助,将不胜感激,谢谢!

该应用适用于 MacOS。

swift 4.2

音频套件 4.5.2

Xcode 10.0

MacOS High Sierra 10.13.6

最佳答案

还有一点需要指出,继续创建新的 AKWavetables 可能不是一个好主意。例如,在音频引擎运行的情况下,您无论如何都无法做到这一点。

如果可以,将最大大小设置为最长的样本,然后在需要时使用 load(file: AKAudioFile) 加载新文件。

漏洞已经修复,将在下一个版本的 AK 中出现。

谢谢你

关于swift - AudioKit AKWaveTable 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52898795/

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