应用程序崩溃与AVAudioSession privateBeginInterruption

时间:2013-02-22 01:20:44

标签: ios xcode avaudioplayer avaudiosession

我在设备上测试我的应用程序(音板)并且它与EXC_BAD_ACCESS崩溃,我使用了断点,错误来自[AVAudioSession privateBeginInterruption]

崩溃发生在这种模式之后:

  1. 该应用已启动,我们会看到主菜单
  2. 按下主菜单按钮并加载(按下)音板视图,此处按下某些按钮并播放声音。
  3. 返回主菜单([self.navigationController popViewControllerAnimated:YES];
  4. 应用程序进入后台
  5. 当应用程序进入前台并按下音板的菜单按钮时,应用程序崩溃。
  6. 我不知道这里发生了什么,我已经安装了CrashLytics,它只说:

    app crash

    也许音频会话从内存中释放,应用程序尝试访问它并失败?

    音频会话在viewDidLoad

    中初始化
    //  Initialize audio session
    [[AVAudioSession sharedInstance] setDelegate: self];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: nil];
    
    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof    (audioRouteOverride),&audioRouteOverride);  
    

    viewDidUnload我有

    [[AVAudioSession sharedInstance] setDelegate: nil];
    

    任何提示?

    谢谢!

1 个答案:

答案 0 :(得分:6)

发生崩溃是因为您已在此行中将会话委托设置为控制器

[[AVAudioSession sharedInstance] setDelegate: self];

但没有实现所需的委托方法(中断一个)

删除委托设置行或实现委托方法来解决崩溃