我正在成功录制音频文件并为其添加过滤器。这是使用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
}
这可以正常工作一次,但第二次调用此函数我得到malloc:***错误对象0x14db7a60:正在释放的指针没有在audioFile初始化时分配错误。
我一直在调查但是徒劳无功。
有趣的是,如果我在捆绑包中使用静态m4a文件,它会一直反复播放而不会崩溃。
此外,在设备中发生了崩溃,但在模拟器中没有发生,这很令人恼火。
这个问题在哪里引起?