2016-04-14 9 views
2

Ich arbeite an einer App, die Musik und Sound-Effekte enthält, also benutze ich AVPlayer und ich stoße auf einen sehr seltsamen Bug, der nur den Simulator zu beeinflussen scheint.Swift AVPlayer wirft Ausnahme auf Simulator

Also in einem der Bildschirme in der App gibt es Musik, die im Hintergrund spielt. Also auf diesem Bildschirm habe ich AVPlayer Setup und startet den Song. Das war in Ordnung gestern arbeiten, aber heute, wenn auf dem Simulator die App ausgeführt wird, diese Ausnahme

geworfen wird

enter image description here

jedoch die App nicht abgestürzt ist, wenn ich Knopf drücken weiterhin ein paar Mal, geht die App läuft. Aber es macht das Debuggen am Simulator sehr frustrierend, da dies jedes Mal passiert, wenn ich diesen Bildschirm öffne. Dieses Problem tritt nicht auf dem Gerät auf.

Was ist Fremder ist, hatte ich ein ähnliches Problem gestern auf dieser App mit AVPlayer. Ich konnte nicht herausfinden, wo das Problem lag, also begann ich, den Code Stück für Stück in ein neues Projekt zu kopieren, bis das Ganze kopiert war und dieses Problem nicht auftrat. Dann begann heute das Thema erneut. Wenn ich diesen Code in ein anderes Projekt kopiere, wird es eine Weile im Simulator funktionieren, aber dieses Problem taucht irgendwann wieder auf.

Hat jemand anderes diese Art von Problemen am Simulator mit AVPlayer erlebt? Gibt es eine Möglichkeit, dies zu lösen? Jede Hilfe wäre sehr geschätzt

Edit: Nur für den Fall, hier ist der Code für wie AVPlayer ist Setup

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

Haben Sie in Xcode irgendwelche Ausnahme-Breakpoints aktiviert? Und wenn Sie das tun, werfen sie nur ObjC-Fehler oder auch C++ - Fehler? – pbodsk

+0

Ich habe den AllExceptions Breakpoint aktiviert. Wenn Sie das ausschalten, scheint das Problem zu lösen. Normalerweise habe ich diesen Breakpoint immer aktiviert, da es das Debuggen beschleunigt, wenn etwas in der App abstürzt, während ich die App ausführe. Aber warum verursacht dies dieses Ausnahmeproblem? Ist das ein bekanntes Problem mit AVPlayer? – AdamM

+0

Ich hatte das gleiche Problem und die Einstellung AllExceptions nur auf ObjC werfen, reparierte es für mich. Auf diese Weise stürzt es immer noch ab, wenn ich einen Fehler verursacht habe, aber nicht, wenn es Fehler in C++ Code gibt. Ich weiß nicht, warum die Ausnahme auftritt, aber ... Entschuldigung – pbodsk

Antwort

4

Wie über das „Problem“ in den Kommentaren zu sehen ist, dass @AdamM eine Ausnahme hatte Haltepunkt in Xcode, der ausgelöst wurde, als Fehler irgendwo inaufgetreten sind.

Die Abhilfe ist die Ausnahme Haltepunkt gesetzt werden, um nur auf Objective C Fehler zu stoppen, wie in diesem Bild

enter image description here

gezeigt tut dies immer noch nicht beantworten, warum der Fehler jedoch in erster Linie auftritt, aber zumindest hören Sie jetzt nicht mehr jedes Mal auf, wenn der Fehler auftritt.