2016-04-18 28 views
6

我在我的應用程序中播放了一些在AVAudioSessionCategoryAmbient下播放的音樂。現在我的問題是,當蘋果彈出「登錄iTunes Store」彈出時,它會暫停我的音樂,但不會恢復。謝天謝地,它照顧我的SKScene ......但不是音樂。有什麼方法可以在警報解除時進行回調?警報「登錄iTunes Store」和「電量低」會暫停應用程序卡塞。我如何取消暫停他們?

奇怪的是,我所做的其他UIAlertView沒有這樣做的應用程序,所以我真的不知道到底是什麼。該暫停的場景和音樂警報

列表:

  • 登錄到iTunes
  • 電池電量低
  • 確認購買

回答

4

我有類似的問題,前一段時間(初雨燕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) 
    } 
} 
+1

非常感謝! –

+0

雖然等了一會兒。這是與轉換有關的問題,特別是當調用.presentScene()時。不幸的是,這個錯誤是不明確的。只有當我進入第三場景時纔會發生。有任何想法嗎? –

+0

@ J.Doe你得到了什麼類型的崩潰?崩潰堆棧? – Ramis

2

幾個想法:

添加鍵 - 值觀察玩家的rate屬性。當利率變化(UIAlertController停止音頻系統,再次開始播放

對於StoreKit交易:我相信你可以和一個成功或不成功SKPaymentTransaction狀態設置回調在這些回調,啓動音頻播放一次此。不考慮電池電量不足的情況下,雖然。