首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer seekToTime工作不正常

AVPlayer seekToTime工作不正常
EN

Stack Overflow用户
提问于 2016-04-06 23:33:32
回答 2查看 7K关注 0票数 6

我在寻找AVPlayer.seekToTime时遇到了问题,我有一个时间索引,我想在这样的scrollViewDidScroll方法中寻找它:

代码语言:javascript
复制
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()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-12 15:13:12

也许你之前的宽容是不正确的。尝试以下几点:

而不是您的代码:

代码语言:javascript
复制
  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

希望这会有所帮助:)

票数 19
EN

Stack Overflow用户

发布于 2016-09-09 16:21:17

嘿,我使用Octane.Xam.Videoplayer:https://components.xamarin.com/view/video-player在Xamarin项目中尝试了上面的代码

效果真的很好!

下面是我的示例代码,我将其放入从VideoPlayerRenderer继承的自定义渲染器中,该代码可以在命名空间Octane.Xam.VideoPlayer.iOS.Renderers中找到:

代码语言:javascript
复制
public void CustomSeek(int seekTime)
    {
        CMTime tm = new CMTime(seekTime, 10000);
        if(NativeVideoPlayer.Player != null)
            NativeVideoPlayer.Player.Seek(tm, CMTime.Zero, CMTime.Zero);
    }

请记住,您必须使用Octane.Xam.VideoPlayer的1.1.4版本来访问VideoPlayerRenderer的NativeVideoPlayer属性。将来,这个属性可能被重命名为PlayerControl。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36464127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档