在多次搜索视频时,AVPlayer提供错误的当前时间和持续时间iOS?

时间:2013-04-19 11:31:44

标签: ios objective-c avplayer

我使用AVPlayer来实现自定义播放器。

某些视频playerItem提供当前时间和错误的持续时间。寻求时间后使用幻灯片多次寻找时间。致电API 当我寻求零时,一些视频无法精确寻找。

      [self.player seekToTime:CMTimeMakeWithSeconds(time, NSEC_PER_SEC)
      toleranceBefore:CMTimeMake(1, 1)
      toleranceAfter:CMTimeMake(1, 1)
      completionHandler:^(BOOL finished) {
         if (finished) {
             IVCLogV(@"seek finish!");
         }
         else
         {
             IVCLogV(@"seek interrupted");
         }
         if (completionHandle) {
             completionHandle(finished);
         }
     }];

我根据mediaTime.timeScale更改了代码。现在,我发现视频流在几次播放后已经改变了视频持续时间和当前时间

1 个答案:

答案 0 :(得分:2)

确保正在播放的媒体的时间刻度与您的时间刻度匹配。我可以看到你使用NSEC_PER_SEC作为时间刻度。您可能必须将CMTime输入缩放到seelTo方法。

CMTime timeAccordingToMediaTimescale = CMTimeConvertScale(time, mediaTime.timescale, CMTimeRoundingMethod);