我的应用程序中有一些音乐在AVAudioSessionCategoryAmbient下播放.现在我的问题是,当Apple弹出一个像“登录iTunes Store”的弹出窗口时,它会暂停我的音乐,但不会恢复它.值得庆幸的是,它照顾了我的SKScene ……但不是音乐.是否有某种方法可以在警报解除时进行回调?
奇怪的是,我制作的其他UIAlertViews不会对应用程序执行此操作,所以我真的不知道是什么.
暂停场景和音乐的警报列表:
>登录itunes
>电池电量低
>确认购买
解决方法
我之前遇到过类似的问题(
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) } }