Инициализация 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 в комплекте, он будет воспроизводиться снова и снова без сбоев.

Также странно происходит сбой в устройстве, но не в симуляторе, что раздражает.

Где эта проблема вызвана?

0 ответов

Другие вопросы по тегам