AVPlayer seeToTime 无法正常工作

2024-01-01

我在使用 AVPlayer.seekToTime 进行查找时遇到问题,我有一个想要在scrollViewDidScroll 方法中查找的时间索引,如下所示:

func scrollViewDidScroll(scrollView: UIScrollView) {
    let offsetTime = scrollView.contentOffset.y * 0.1

    self.playerController.player?.seekToTime(CMTime(seconds: Double(offsetTime), preferredTimescale: 10), toleranceBefore: kCMTimePositiveInfinity, toleranceAfter: kCMTimeZero)

}

但视频不流畅。例如,当您滚动时,我希望视频仅向前移动 0.01 秒(我的视频非常短,只有大约 2.0 秒长),但是当您滚动足够远时,视频会向前移动几乎一整秒。它真的很不稳定,我不知道为什么我不能寻求像 1.00 秒到 1.01 秒这样的时间并让图像代表玩家移动的时间索引。这可能吗?我究竟做错了什么?请帮忙!

PS:如果这有帮助的话,我从不调用 self.playerController.player?.play()


可能是你之前的宽容度没设置好。尝试以下方法:

而不是你的代码:

  let offsetTime = scrollView.contentOffset.y * 0.1
  let seekTime : CMTime = CMTimeMake(Double(offsetTime), 1000)
self.playerController.player?.seekToTime(seekTime, toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)
  • 时间刻度告诉你每秒有多少个单位
  • 另外,toleranceBefore 也应该是 kCMTimeZero

希望这可以帮助 :-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AVPlayer seeToTime 无法正常工作 的相关文章

随机推荐