Ios Swift:所需条件为false:文件!=无

Ios Swift:所需条件为false:文件!=无,ios,swift,null,avaudioengine,avaudioplayernode,Ios,Swift,Null,Avaudioengine,Avaudioplayernode,应用程序运行正常,但只要我点击“花栗鼠”按钮,应用程序就会崩溃,并提供以下错误: 错误:AVAudioPlayerNode.mm:678:-[AVAudioPlayerNode scheduleFile:atTime:completionHandler::所需条件为false: 文件!=零2015-05-10 17:24:25.269音高完美[50278:1897012]*** 由于未捕获异常而终止应用程序 'com.apple.coreaudio.avfaudio',原因:'所需条件为假: 文

应用程序运行正常,但只要我点击“花栗鼠”按钮,应用程序就会崩溃,并提供以下错误:

错误:AVAudioPlayerNode.mm:678:-[AVAudioPlayerNode scheduleFile:atTime:completionHandler::所需条件为false: 文件!=零2015-05-10 17:24:25.269音高完美[50278:1897012]*** 由于未捕获异常而终止应用程序 'com.apple.coreaudio.avfaudio',原因:'所需条件为假: 文件!=零


很简单。请阅读错误消息!你是说:

var audioFile:AVAudioFile!
这意味着
audioFile
为零。在那之后,你再也不会碰音频文件,所以它开始时为零,然后保持为零。因此,当你到达这条线时,你会崩溃:

audioPlayerNode.scheduleFile(audioFile, atTime: nil, completionHandler: nil)

。。。正是因为
音频文件
为零。

正如马特提到的,音频文件为零

所以要解决这个问题,你必须设置它。查看代码,您应该使用

    audioFile = AVAudioFile(forReading: receivedAudio.filePathUrl, error: nil)

这将设置音频文件,代码不会崩溃

因此,当调用
scheduleFile
时,
audioFile
参数为
nil
。你在哪里设置的?是的,好像你没有在任何地方设置音频文件。
    audioFile = AVAudioFile(forReading: receivedAudio.filePathUrl, error: nil)