【发布时间】:2015-11-16 21:26:02
【问题描述】:
如果在歌曲播放约 5 秒后选择后退按钮,我正在尝试让 avPlayer 重新启动当前歌曲,并根据滑块移动到的位置跳转到时间。这是我的这些功能的代码:
@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,或者文件有些奇怪,但这对我来说真的很奇怪。
感谢任何帮助。提前致谢!
【问题讨论】:
标签: ios swift avplayer cmtime seektotime