我正在尝试使用用 zencoder 编码的 AVPlayer 在 iOS 上播放视频。我看到的问题是播放器项目报告的持续时间是四舍五入/不精确的。例如,视频时长可能是 173.134,播放器项目会将其报告为平面 174.0。这会导致检测加载百分比和其他相关内容出现问题。如果我尝试在不编码的情况下使用视频,则会正确准确地报告所有内容。
有没有其他人见过这个或有解决方案?
我正在尝试使用用 zencoder 编码的 AVPlayer 在 iOS 上播放视频。我看到的问题是播放器项目报告的持续时间是四舍五入/不精确的。例如,视频时长可能是 173.134,播放器项目会将其报告为平面 174.0。这会导致检测加载百分比和其他相关内容出现问题。如果我尝试在不编码的情况下使用视频,则会正确准确地报告所有内容。
有没有其他人见过这个或有解决方案?
问题原来是源视频/zencoder 的问题。音轨的长度与视频的长度略有不同,这会导致编码出现问题。切断视频的最后一秒,以便轨道持续时间匹配解决了这个问题。
我有同样的问题。我只是比较当前位置和项目持续时间和 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.
}