2016-04-14 66 views
2

AVPlayer kullanarak müzik ve ses efektleri içeren bir uygulama üzerinde çalışıyorum ve simülatörün sadece etkili olduğu izlenimi veren çok garip bir hatayla karşılaşıyorum.Swift AVPlayer simülatörü üzerinde istisna fırlatma

Uygulamadaki ekranlardan birinde, arka planda çalan müzik var. Bu ekranda, AVPlayer kurulumum var ve şarkıyı başlatıyorum. Ben devam tuşuna birkaç kez vurursam Bu ince dün çalışıyordu, ama bugün simülatörü üzerinde uygulamayı çalıştırırken, bu istisna, uygulama çöktü henüz Ancak

enter image description here

atılır, uygulama çalışmaya devam eder. Fakat simülatörde hata ayıklamayı çok sinir bozucu hale getiriyor, çünkü bu ekranı açtığımda her seferinde bu oluyor. Bu sorun cihazda gerçekleşmiyor.

Yabancı ne demek, AVPlayer ile bu uygulamada dün benzer bir sorun yaşadım. Sorunun nerede olduğunu anlayamadım, bu yüzden kodun tamamını tek bir proje parçasıyla kopyalamaya başladım, tüm şey kopyalanana kadar ve bu sorun oluşmadı. O zaman bugün, sorun yeniden başladı. Bu kodu başka bir projeye kopyalarım, simülatörde bir süre için iyi çalışır, ancak sonunda bu sorun tekrar ortaya çıkar.

AVPlayer ile simülatörde bu tür sorun yaşayan başka biri var mı? Bunu çözmenin bir yolu var mı? Herhangi bir yardım çok takdir

Düzenleme: Her ihtimale karşı burada kod AVPlayer kurulum nasıl içindir

var songPlayerItem : AVPlayerItem? 
    var songPlayer : AVPlayer? 

    func startSong() 
    { 
     let url = NSURL.fileURLWithPath(NSBundle.mainBundle().pathForResource(song!.id, ofType: "mp3")!) 
     songPlayerItem = AVPlayerItem(URL: url) 

     NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.itemDidFinishPlaying(_:)), name: AVPlayerItemDidPlayToEndTimeNotification, object: songPlayerItem) 
     songPlayer = AVPlayer(playerItem: songPlayerItem!) 
     songPlayer?.play() 
    } 

func itemDidFinishPlaying(notification : NSNotification) 
    { 
     print("SongFinished") 
    } 
+0

Xcode'da herhangi bir fırsattan yararlanarak istisna sınırlamalarınız var mı? Ve eğer yaparsanız, sadece ObjC hataları veya C++ hataları atarlar mı? – pbodsk

+0

AllExceptions kesme noktasını döndürdüm. Bunu kapatmak sorunu çözüyor. Uygulamayı çalıştırırken uygulamada bir şey çökerse, hata ayıklamayı daha hızlı hale getirdiğinden genellikle bu ayrılma noktasını her zaman kullanırım. Ancak bu neden bu istisna sorununa neden oluyor? Bu AVPlayer ile bilinen bir sorun mu? – AdamM

+0

Aynı problemi yaşadım ve AllExceptions'ı sadece ObjC'ye atamak benim için ayarladı. Bu şekilde, bir hataya neden olduysam ancak C++ kodunda hata varsa, hala çöküyor. Niçin istisnanın gerçekleştiğini bilmiyorum ... üzgünüm – pbodsk

cevap

4

"sorunu" @AdamM bir özel durum vardı ki yukarıdaki yorumlar görülebileceği gibi AVPlayer'da hatalar oluştuğunda tetiklenen Xcode'daki kesme noktası. Sadece Objective C hatalarında durdurmak için bu resimde görüldüğü gibi

geçici çözüm İstisna kesme noktası ayarlamaktır

enter image description here

hata olsa ilk etapta meydana neden hala cevap vermez ama En azından artık hata her oluştuğunda artık durmuyorsunuz.