警报"登录iTunes Store"和"电池电量不足"会暂停我的应用程序卡纸.我怎样才能取消它们?

J.D*_*Doe 6 iphone avaudioplayer ios swift

我的应用程序中有一些音乐可以播放AVAudioSessionCategoryAmbient.现在我的问题是,当Apple弹出一个像"登录iTunes Store"的弹出窗口时,它会暂停我的音乐,但不会恢复它.值得庆幸的是,它照顾了我SKScene......但不是音乐.是否有某种方法可以在警报解除时进行回调?

奇怪的是,UIAlertView我制作的其他内容不会对应用程序执行此操作,所以我真的不知道是什么.

暂停场景和音乐的警报列表:

  • 登录itunes
  • 电量不足
  • 确认购买

Ram*_*mis 4

我不久前也遇到过类似的问题(从 Swift 1.2 开始)。我通过观察SKScene 的暂停状态解决了我的问题。SKScene 有 SKView 类型的视图。

private var queueContext = 0

override func didMoveToView(view: SKView) {
    super.didMoveToView(view)
    self.view.addObserver(self,
                          forKeyPath: "paused",
                          options: .New,
                          context: &queueContext)
}

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
    if context == &queueContext {
        if let paused = change?[NSKeyValueChangeNewKey] as? Bool {
            // TODO: react on paused status changes
        }
    }
    else {
        super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
    }
}
Run Code Online (Sandbox Code Playgroud)