Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AVPlayer在多次搜索视频时提供错误的currenttime和duration iOS?_Ios_Objective C_Avplayer - Fatal编程技术网

AVPlayer在多次搜索视频时提供错误的currenttime和duration iOS?

AVPlayer在多次搜索视频时提供错误的currenttime和duration iOS?,ios,objective-c,avplayer,Ios,Objective C,Avplayer,我使用AVPlayer实现一个自定义播放器 某些视频播放器项提供了当前时间和错误的持续时间。在寻找时间之后使用幻灯片多次寻找时间。调用API 当我搜索到零时,某些视频无法精确搜索 [self.player seekToTime:CMTimeMakeWithSeconds(time, NSEC_PER_SEC) toleranceBefore:CMTimeMake(1, 1) toleranceAfter:CMTimeMake(1, 1) compl

我使用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更改代码。现在我发现视频流在多次播放后更改了视频持续时间和当前时间。

确保正在播放的媒体的时间刻度与您的时间刻度匹配。我可以看出,您使用了NSEC_每秒作为时间刻度。您可能需要将CMTime输入缩放到seelTo方法

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

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