AudioKit AKWaveTable утечка памяти - PullRequest
0 голосов
/ 19 октября 2018

Я не знаю, если это я или я обнаружил какую-то проблему с 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 для повышения производительности.

После некоторой последовательной замены сэмплов выделенная память растет довольно быстродо 900 МБ!

Что я делаю не так?Любая помощь будет признательна, спасибо!

Приложение для MacOS.

Swift 4.2

AudioKit 4.5.2

Xcode 10.0

MacOS High Sierra 10.13.6

1 Ответ

0 голосов
/ 20 октября 2018

Еще одна вещь, на которую следует обратить внимание, вероятно, не очень хорошая идея продолжать создавать новые AKWavetables.Так или иначе, вы не можете сделать это при работающем звуковом движке.

Если можете, установите максимальный размер для самого длинного сэмпла, а затем просто используйте load (file: AKAudioFile) для загрузки нового файла.когда вам это нужно.

Утечка исправлена ​​и будет устранена в следующей версии AK.

Спасибо yall

...