AVPlayer在多次搜索视频时提供错误的currenttime和duration iOS?
我使用AVPlayer实现一个自定义播放器 某些视频播放器项提供了当前时间和错误的持续时间。在寻找时间之后使用幻灯片多次寻找时间。调用APIAVPlayer在多次搜索视频时提供错误的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
当我搜索到零时,某些视频无法精确搜索
[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更改代码。现在我发现视频流在几次播放后改变了视频持续时间和当前时间。