AudioKit AKWaveTable 内存泄漏

AudioKit AKWaveTable memory leak

我不知道是我的问题还是我发现了 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

AudioKit 4.5.2

Xcode 10.0

MacOS High Sierra 10.13.6

还有一点要指出,继续创建新的 AKWavetables 可能不是一个好主意。例如,你不能用音频引擎 运行 做到这一点。

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

漏洞已修复,将在下一版本的 AK 中发布。

谢谢大家