Swift AVPlayer在模拟器

时间:2016-04-14 09:33:00

标签: swift avplayer

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

因此,在应用程序的其中一个屏幕中,有背景播放的音乐。所以在那个屏幕上,我有AVPlayer设置并启动歌曲。昨天工作正常,但今天在模拟器上运行应用程序时,会抛出此异常

enter image description here

然而,应用程序没有崩溃,如果我按几次继续按钮,应用程序继续运行。但它在模拟器上进行调试非常令人沮丧,因为每次打开此屏幕都会发生这种情况。设备上不会发生此问题。

陌生人是,我昨天在AVPlayer这个应用程序上遇到了类似的问题。我无法弄清楚问题出在哪里,所以我开始将代码逐个复制到一个新项目,直到整个事情被复制过来,并且这个问题没有发生。然后今天,问题再次开始。如果我将此代码复制到另一个项目,它将在模拟器上运行一段时间,但最终会再次弹出此问题。

有没有其他人在使用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")
    }

1 个答案:

答案 0 :(得分:4)

从上面的评论中可以看出,“问题”是@AdamM在Xcode中有一个异常断点,当active中出现错误时触发了该断点。

解决方法是将Exception断点设置为仅停止Objective C错误,如此图所示

enter image description here

这仍然无法解决为什么错误首先发生,但至少你现在不再每次都发生错误就停止了。