【问题标题】:EZAudio stopfetching audioEZAudio 停止获取音频
【发布时间】:2016-09-19 04:11:47
【问题描述】:

当我从 EZAudio 调用函数 .stopfetchingaudio() 时,我的应用程序崩溃了。

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] 致命错误:在展开可选值时意外发现 nil

但我不知道它是什么意思。

【问题讨论】:

  • 你的麦克风是在哪里定义的?
  • 它在来自 SpriteKit 的 GameScene 中定义。这个想法是当我切换到另一个视图控制器时,我将停止麦克风捕获。为此,我从父 viewController 调用 stop() 函数。但这给了我这个错误

标签: ios swift optional ezaudio


【解决方案1】:

我认为应该是:

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

解释:原因是您从一个视图(使用麦克风的位置)移动到另一个视图而没有对其进行初始化。当你从第二个视图控制器调用 stop 方法时,它会导致错误,因为麦克风是 NIL。

【讨论】:

  • 抱歉发帖失败
  • 你在哪里初始化了麦克风?
  • 它在来自 SpriteKit 的 GameScene 中定义。这个想法是当我切换到另一个视图控制器时,我将停止麦克风捕获。为此,我从父 viewController 调用 stop() 函数。但这给了我这个错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多