Инициализация AKAudioFile выдает ошибку malloc
Я успешно записываю аудиофайл и добавляю к нему фильтр. Это делается с помощью инфраструктуры AudioKit
Следующий код о воспроизведении отфильтрованного аудио
let audioFilename = self.getDocumentsDirectory().appendingPathComponent(self.storedFileToPlay!)
var audioFile : AKAudioFile? = nil
do {
if (audioFile == nil)
{
audioFile = try AKAudioFile.init(forReading: audioFilename)
}
}catch{
print (error)
}
guard audioFile != nil else {return}
if (player == nil)
{
player = try AKAudioPlayer(file: audioFile!)
}
else
{
try player?.replace(file: audioFile!)
}
player?.looping = false
let timePitch = AKTimePitch(player)
timePitch.pitch = 800.0
AudioKit.output = timePitch
AudioKit.start()
player?.play()
player?.completionHandler = {
self.player?.stop()
audioFile = nil
self.player = nil
}
Это работает должным образом в течение 1 раза, но во второй раз, когда эта функция вызывается, я получаю malloc: *** ошибка для объекта 0x14db7a60: освобожденный указатель не был распределен как ошибка только в точке инициализации аудио файла.
Я продолжал смотреть на это, но тщетно.
Забавно, если я использую статический файл m4a в комплекте, он будет воспроизводиться снова и снова без сбоев.
Также странно происходит сбой в устройстве, но не в симуляторе, что раздражает.
Где эта проблема вызвана?