Я пытаюсь перезапустить текущую песню, когда кнопка перехода назад выбрана, если она находится примерно через 5 секунд в песне, и переходите к разу в соответствии с тем, куда перемещается ползунок. Вот мой код для этих функций:avplayer заканчивая песня на seekToTime
@IBAction func buttonBackTouchDown(sender: AnyObject) {
if (Float(CMTimeGetSeconds((avPlayerItem?.currentTime())!)) > 5) {
//restartSong = true
avPlayer.currentItem!.seekToTime(kCMTimeZero)
//self.loadSongValues()
//restartSongTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("setRestartSongToFalse"), userInfo: nil, repeats: false)
}
else if (Float(CMTimeGetSeconds((avPlayerItem?.currentTime())!)) < 5) {
self.previousSong()
}
}
@IBAction func sliderTouchDown(sender: AnyObject) {
self.sliderTimer.invalidate()
avPlayer.pause()
self.overlayOn()
}
@IBAction func sliderTouchUpInside(sender: AnyObject) {
//restartSongTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("setRestartSongToFalse"), userInfo: nil, repeats: false)
//NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("startSliderTimer"), userInfo: nil, repeats: false)
self.startLabelTimer()
avPlayer.play()
self.updateNowPlayingInfoCenter()
self.overlayOff()
}
Проблема у меня в том, что если песня через 1 минуту в, или это почти закончена, и я двигаю ползунок слишком далеко назад, ИНОГДА запускает этот наблюдатель:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "skipSong", name: AVPlayerItemDidPlayToEndTimeNotification, object: avPlayerItem)
Я пытался смотреть в ссылках от Apple и посмотрел на другие вопросы здесь, на StackOverflow, но не смог найти ничего.
Возможно, я не понимаю, как правильно использовать CMTime, или что-то странно с файлами, но это действительно странно для меня.
Любая помощь приветствуется. Заранее спасибо!