2016-04-18 35 views
6

Uygulamamda AVAudioSessionCategoryAmbient altında oynayan bazı müzikler var. Şu anda benim problemim, Apple'ın "iTunes Store'da oturum aç" gibi bir pop-up açması ile müziğimi duraklatması, ancak devam etmemesi. Neyse ki benim SKScene'umla ilgileniyor ... ama müzik değil. Uyarının reddedilmesi durumunda bir geri aranmanın olması için bir yol var mı?Uyarı "iTunes Store'da oturum aç" ve "Pil zayıf", uygulama sıkışmalarını duraklatıyor. Onları nasıl durdurabilirim?

Garip olan şey yaptığım diğer UIAlertView s bunu uygulamaya yapmamak, bu yüzden gerçekten ne olduğunu bilmiyorum. sahne ve müzik duraklatmak uyarıların

listesi:

  • onayla alım

cevap

4

müddet evvel (başlangıcı Swift 1.2) benzer sorunlar vardı. Ben gözlemleyerek benim sorun çözüldü SKView türüdür görünüme sahip SKScene. SKScene için durumunu durduruldu.

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

Çok teşekkürler! –

+0

bir süre bekleyin. Bu, özellikle .presentScene() çağrıldığında, geçişlerle ilgili sorunların çökmesine neden olur. Maalesef hata belirsizdir. Ve sadece 3. sahneye geçtiğimde olur. Herhangi bir fikir? –

+0

@ J.Doe Ne tür bir çöküş alıyorsunuz? Kaza yığını? – Ramis

2

Birkaç fikir

  • Pil zayıf itunes Girişi:

    bir anahtar- ekle değer oyuncunun rate özelliğinde göz atın. Hız değiştiğinde (sistem UIAlertController sistemi durdurur, yeniden oynatmayı tekrar başlatın.

    StoreKit işlemleri için: Başarılı veya başarısız bir SKPaymentTransaction durumu için geri aramalar alabileceğinizi ve ayarlayabileceğinizi düşünüyorum.Bu geri aramalarda ses çalma işlemini bir kez daha başlatın. gerçi düşük pil durumunda hesaba katmaz.