AudioKit AKWaveTable内存泄漏

时间:2018-10-19 19:28:40

标签: swift audiokit

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

1 个答案:

答案 0 :(得分:1)

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

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

漏洞已得到修复,将在下一版本的AK中消失。

谢谢你们

相关问题