我正在尝试使用zencoder编码的AVPlayer在iOS上播放视频。我看到的问题是玩家物品报告的持续时间是四舍五入/不精确的。例如,视频持续时间可能是 173.134,播放器项目会将其报告为平面 174.0。这会导致检测加载百分比和其他相关内容时出现问题。如果我尝试在不编码的情况下使用视频,则会正确准确地报告所有内容。
有没有人见过这个或有解决方案?
我遇到了同样的问题。我只是比较当前位置和项目持续时间与 1 秒之间的差异:
- (void)playing:(CMTime)time
{
CMTime itemDuration = _player.currentItem.asset.duration;
NSTimeInterval currentTime = CMTimeGetSeconds(time);
NSTimeInterval duration = CMTimeGetSeconds(itemDuration);
if (fabs(currentTime - duration) < 1)
// This is the end.
}
问题原来
是源视频/z编码器的问题。音轨的长度与视频略有不同,这导致了编码问题。切断视频的最后一秒以使轨道持续时间匹配解决了问题。