【问题标题】:avplayer finishing song on seekToTimeavplayer 在 seekToTime 上完成歌曲
【发布时间】: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


    【解决方案1】:

    我在使用 AVPlayer 时也遇到了很多问题,尤其是 SeekToTime 方法。

    当你这样做时

    avPlayer.currentItem!.seekToTime(kCMTimeZero)
    

    avPlayer 正在跳转到第 0 帧,而不是应有的第一帧。对于 AVPlayer,第 0 帧和最后一帧似乎是相同的。尝试以下操作:(比如跳到时间 0.001 而不是 0)

            let seekTime : CMTime = CMTimeMake(1, 1000)
            avPlayer!.seekToTime(seekTime)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      相关资源
      最近更新 更多