【问题标题】:AVPlayer provide wrong currenttime and duration iOS when seek the video many times?AVPlayer 在多次寻找视频时提供错误的当前时间和持续时间 iOS?
【发布时间】:2013-04-19 11:31:44
【问题描述】:

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

某些视频播放器项提供了当前时间和错误的持续时间。搜索时间后使用幻灯片多次搜索时间。调用 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 更改代码。现在我发现视频流在播放几次后改变了视频时长和当前时间

【问题讨论】:

    标签: ios objective-c avplayer


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我根据 mediaTime.timeScale 更改代码。现在我发现视频流在播放几次后改变了视频时长和当前时间
    猜你喜欢
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2017-01-19
    • 2022-01-10
    相关资源
    最近更新 更多