Swift AVPlayer 在模拟器上抛出异常

Swift AVPlayer throwing exception on simulator

我正在开发一个包含音乐和音效的应用程序,所以我正在使用 AVPlayer,但我遇到了一个非常奇怪的错误,它似乎只影响模拟器。

所以在应用程序的其中一个屏幕中,有音乐在后台播放。所以在那个屏幕上,我设置了 AVPlayer 并开始播放歌曲。昨天运行良好,但今天 运行 模拟器上的应用程序抛出此异常

但是应用程序并没有崩溃,如果我点击继续按钮几次,应用程序会继续运行 运行。但这让模拟器上的调试变得非常令人沮丧,因为每次我打开这个屏幕时都会发生这种情况。设备上不会发生此问题。

奇怪的是,我昨天在使用 AVPlayer 的这个应用程序上遇到了类似的问题。想不通问题出在哪里,就开始把代码一段一段的copy到一个新的项目中,直到整个都copy过来,才没有出现这个问题。然后今天,这个问题又开始了。如果我将这段代码复制到另一个项目,它在模拟器上可以正常运行一段时间,但最终这个问题又会弹出。

有没有其他人在使用 AVPlayer 的模拟器上遇到过此类问题?有什么办法可以解决这个问题吗?任何帮助将不胜感激

编辑:以防万一,这里是 AVPlayer 设置代码

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")
    }

从上面的评论中可以看出,"problem" 是 @AdamM 在 Xcode 中有一个异常断点,当 AVPlayer.[=12 中某处发生错误时触发该断点=]

解决方法是将异常断点设置为仅在出现 Objective C 错误时停止,如此图所示

虽然这仍然没有回答为什么首先会出现错误,但至少您现在不再每次出现错误时都停止。