2016-09-19 166 views
0

當我從EZAudio呼叫功能.stopfetchingaudio()時,我的應用程序崩潰。EZAudio stopfetching audio

var microphone: EZMicrophone! 

func didMove(to view: SKView){ 

/* 
     * setup all dependencys for the fft analysis 
     */ 

     //setup audio session 
     session = AVAudioSession.sharedInstance() 
     do{ 
      try session.setCategory(AVAudioSessionCategoryPlayAndRecord) 
      try session.setActive(true) 
     }catch{ 
      print("Audio Session setup Fails") 
     } 

     //create a mic instance 
     microphone = EZMicrophone(delegate: self) 


} 

func stopMic(){ 
    microphone.stopFetchingAudio() 
} 

我得到這個錯誤:

xyz-abv[435:35687] fatal error: unexpectedly found nil while unwrapping an Optional value

但我不知道它的意思是哪些可選。

+0

您的麥克風定義在哪裏? –

+0

它在SpriteKit的GameScene中定義。這個想法是當我切換到其他視圖控制器時,我將停止麥克風捕捉。爲此,我從父視圖控制器調用stop()函數。但是,這給了我這個錯誤 – Aron

回答

1

我覺得應該是:

func stopMic(){ 
    if let _ = microphone { 
     microphone.stopFetchingAudio() 
    } 
} 

說明:的原因是,你從一個視圖(當使用麥克風),另一種觀點認爲移動沒有intializing它。當您從第二個視圖控制器調用停止方法時,它會導致錯誤,因爲麥克風是NIL。

+0

對不起,在後 – Aron

+0

失敗你在哪裏初始化麥克風? –

+0

它在SpriteKit的GameScene中定義。這個想法是當我切換到其他視圖控制器時,我將停止麥克風捕捉。爲此,我從父視圖控制器調用stop()函數。但是,這給我這個錯誤 – Aron