2016-09-19 8 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に定義されています。アイデアは、私が他のビューコントローラに切り替えるときです。私はマイクキャプチャを停止します。これを行うには、親viewControllerからstop()関数を呼び出します。しかし、これは私にこのエラーを与える – Aron

答えて

1

私はそれがあるべきだと思う:

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

説明:あなたはそれをintializingせずに別のビューに(マイクが使用されている)1つのビューから移動さ理由。また、2番目のView Controllerからstopメソッドを呼び出すと、マイクがNILであるため、エラーが発生します。

+0

申し訳ありません投稿の失敗だった – Aron

+0

マイクはどこで初期化しましたか? –

+0

SpriteKitのGameSceneに定義されています。アイデアは、私が他のビューコントローラに切り替えるときです。私はマイクキャプチャを停止します。これを行うには、親viewControllerからstop()関数を呼び出します。しかし、これは私にこのエラーを与える – Aron