2016-04-06 31 views
2

Im AVPlayer.seekToTime ile arayan bir sorunu olan çalışmıyor, ben böyle bir scrollViewDidScroll yöntemi içinde etmeye istediğiniz zaman endeksine sahip:AVPlayer seekToTime düzgün

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) 

} 

Ama Video akmaz Güzel. Örneğin, kaydırma yaptığınızda, videonun yalnızca saniyenin 0.01'i gibi ilerlemesini istiyorum (sahip olduğum video gerçekte sadece 2.0 sn uzunluğundadır), ancak yeterince uzağa kaydırdığınızda, video neredeyse bir saniyeliğine ilerler . Onun gerçekten çirkin ve neden emin değilim çünkü 1.00 saniyeden 1.01 saniyeye kadar söylemek istemiyorum ve görüntü üzerinde zaman endeksi temsil eden görüntü var. Mümkün mü? Neyi yanlış yapıyorum? Lütfen yardım et!

Not:? Ben self.playerController.player hiç aramıyorsun .play() bu

+0

tercih ettinizYalnız: 10000 ve her şeyi aynı tutar – amergin

cevap

2

Belki önce tolerans doğru ayarlanmamış yardımcı olur. yerine kod

:

let offsetTime = scrollView.contentOffset.y * 0.1 
    let seekTime : CMTime = CMTimeMake(Double(offsetTime), 1000) 
self.playerController.player?.seekToTime(seekTime, toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero) 
  • Ölçek sen de ikinci
  • başına kaç ünite anlatır Zaman, toleranceBefore AYRICA kCMTimeZero

umut olmalı takiben deneyin Bu, yardımcı olur :-)

0

Yukarıdaki kodu bir Xamarin projesinde O kullanarak denedim ctane.Xam.Videoplayer: https://components.xamarin.com/view/video-player

Gerçekten iyi çalıştı! Öyle olacağına

public void CustomSeek(int seekTime) 
    { 
     CMTime tm = new CMTime(seekTime, 10000); 
     if(NativeVideoPlayer.Player != null) 
      NativeVideoPlayer.Player.Seek(tm, CMTime.Zero, CMTime.Zero); 
    } 

Unutmayın: Burada

ben ad Octane.Xam.VideoPlayer.iOS.Renderers bulunabilir VideoPlayerRenderer miras bir Özel Oluşturucu koymak benim örnek kod VideoPlayerRenderer'ın NativeVideoPlayer özelliğine erişmek için Octane.Xam.VideoPlayer Sürüm 1.1.4'ü kullanmak zorunda. Gelecekte bu özellik PlayerControl olarak yeniden adlandırılabilir.