2016-09-19 6 views
0

Когда я вызываю функцию .stopfetchingaudio() из EZAudio, мое приложение падает.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

Это в GameScene из SpriteKit. Идея заключается в том, что когда я переключаюсь на другой контроллер представления, я остановлю захват микрофона. Для этого я вызываю из родительского viewController функцию stop(). Но это дает мне эту ошибку – Aron

ответ

1

Я думаю, что это должно быть:

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

Объяснение: Причина заключается в переходе от одной точки зрения (где используется микрофон) к другой точке зрения, не intializing его. И когда вы вызываете метод остановки из второго контроллера представления, это вызывает ошибку, поскольку микрофон является NIL.

+0

Извините, был сбой в сообщении – Aron

+0

Где вы инициализировали микрофон? –

+0

Это в GameScene из SpriteKit. Идея заключается в том, что когда я переключаюсь на другой контроллер представления, я остановлю захват микрофона. Для этого я вызываю из родительского viewController функцию stop(). Но это дало мне эту ошибку – Aron