我在寻找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()
发布于 2016-04-12 15:13:12
也许你之前的宽容是不正确的。尝试以下几点:
而不是您的代码:
let offsetTime = scrollView.contentOffset.y * 0.1
let seekTime : CMTime = CMTimeMake(Double(offsetTime), 1000)
self.playerController.player?.seekToTime(seekTime, toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)希望这会有所帮助:)
发布于 2016-09-09 16:21:17
嘿,我使用Octane.Xam.Videoplayer:https://components.xamarin.com/view/video-player在Xamarin项目中尝试了上面的代码
效果真的很好!
下面是我的示例代码,我将其放入从VideoPlayerRenderer继承的自定义渲染器中,该代码可以在命名空间Octane.Xam.VideoPlayer.iOS.Renderers中找到:
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。
https://stackoverflow.com/questions/36464127
复制相似问题